简单选择:
简单选择顾名思义,就是第一次选择最小的元素放到数组第一位,第二次选择次小的放到数组第二位,以此类推,循环n次,直到数组有序为止。
//选择排序算法
void select_sort(int * a, int n)
{
int i,j,index;
for(i =0 ;i<n;++i)
{
index = i;
//遍历数组,寻找当前最小值,index记录最小值的下标
for(j=i+1;j<n;++j)
if(a[index] > a[j])
index = j;
//将当前最小值放到合适的位置,实际上是交换
swap(a[i],a[index]);
}
}
运行结果:
可以看出用了两个循环,故时间复杂度是O(n*n)。