十大经典排序算法之选择排序。

​ 选择排序(Selection Sort)是一种简单直观的排序算法,它的基本思想是通过重复从未排序的部分选择最小(或最大)的元素,并将其放到已排序部分的末尾,直到整个列表都排序完成,也就是说,他先把数组先分成了两个部分,一个是有序的,一个是无序的,如果我们是从小到大排序,那么每次都从未排序的部分中找到最小的,然后放到有序的部分中。

选择排序的基本步骤如下:

  1. 首先,假设整个列表为未排序部分。
  2. 在未排序部分中,找到最小(或最大)的元素,并将其与未排序部分的第一个元素交换位置,使得该最小(或最大)元素成为已排序部分的最后一个元素。
  3. 然后,将未排序部分的范围缩小一个元素,继续执行步骤2,直到整个列表都排序完成。
  4. 时间复杂度为 O(n^2)。

接下里我们给出一段选择排序的示例c代码

void select_sort(int *array, int array_num)
{
	int				i = 0;
	int				j = 0;
	int				pos = 0;   
	int				temp = 0;  

	printf("select sorting\n");

	for (i=0; i<array_num; i++)
	{
		pos = i;
		
		//找到最小的数字对应的那个数组角标
		for (j=i+1; j<array_num; j++)
		{
			if ( array[j]<array[pos] )
			{
				pos = j;
			}
		}
		temp = array[i];
		array[i] = array[pos];
		array[pos] = temp;
	}
}

相关推荐

  1. 经典排序算法选择排序。

    2024-04-25 07:28:03       39 阅读
  2. 经典排序算法希尔排序。

    2024-04-25 07:28:03       34 阅读
  3. 选题排序排序算法

    2024-04-25 07:28:03       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 07:28:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 07:28:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 07:28:03       82 阅读
  4. Python语言-面向对象

    2024-04-25 07:28:03       91 阅读

热门阅读

  1. springboot 集成 activemq

    2024-04-25 07:28:03       43 阅读
  2. Centos 7.9 一键安装 Oracle 12CR2(240116)单机 PDB

    2024-04-25 07:28:03       38 阅读
  3. 415. 字符串相加

    2024-04-25 07:28:03       34 阅读
  4. [C++]多态是如何调用不同的函数对象的?

    2024-04-25 07:28:03       33 阅读
  5. docker安装efk

    2024-04-25 07:28:03       39 阅读
  6. 【Jenkins】Jenkins nohup执行失败

    2024-04-25 07:28:03       47 阅读
  7. Mac 上可以使用 ping 端口

    2024-04-25 07:28:03       42 阅读
  8. pnpm的安装与配置(Windows/macOS)

    2024-04-25 07:28:03       33 阅读
  9. Swift加载Lottie

    2024-04-25 07:28:03       37 阅读
  10. 基于Promise + XHR 封装myAxios函数

    2024-04-25 07:28:03       38 阅读