介绍
选择排序,是指计算机的一种排序方法,它的时间复杂度为O(n2),它是对冒泡排序法的一种改进。
原理
每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。
代码
void select_sort(int *a, int n)
{
register int i, j, min, t;
for(i = 0; i < n - 1; i ++)
{
min = i;
//查找最小值
for(j = i + 1; j < n; j ++)
if(a[min] > a[j])
min = j;
//交换
if(min != i)
{
t = a[min];
a[min] = a[i];
a[i] = t;
}
}
}