菜鸡的选择排序(selectionSort)
选择排序算法是冒泡排序算法的一种改进。
从下到大为例。用一个变量k做标记,记录最小值的下标。
排序时,先用k记录第一个数的下标,然后循环遍历用k与数组后面的数比较,找到最小值的下标,并用k记录,然后交换第一个数与此时得到k(如果第一个数不是最小值,那么此时k的值已改变为最小值的下标)所代表的数,第一轮结束后,便找到最小值。然后继续寻找,知道排序完成。
下面就看代码吧
void selectionSort(int a[],int lenth)
{
int i,j,k,temp = 0;
for(i = 0; i < lenth; i++){
k = i;
for(j = i + 1; j < lenth; j++){
if(a[k] > a[j]){
k = j;
}
}
temp = a[k];
a[k] = a[i];
a[i] = temp;
}
for(i = 0; i < 10; i++){
if(i % 5 == 0 && i != 0){
cout << endl;
}
cout << a[i] << " ";
}
}
int main()
{
int a[10] = {95,8,58,4,15,1,57,41,57,4};
selectionSort(a,10);
return 0;
}
最后说一下,选择排序是一种不稳定算法,因为
选择排序可能会打乱两个相同数字原有的顺序
如果想要了解算法的稳定性。请点击下面的链接
排序算法的稳定性