复习排序-简单选择排序

来源:互联网 发布:.com域名注册 编辑:程序博客网 时间:2024/05/20 14:25

简单选择排序

不需要一直做两两交换元素值,而是交换下标。在一轮比较结束时才交换元素值。

算法实现一:通过tmp来代替待选择排序的元素,依次与数组元素比较,交换下标值。

voidSimpleSelectSort(int *num ,int length){   int i,j;   for(i=0;i<length-1;i++)   {       tmp = i;       for(j=i+1;j<length;j++)       {          if(num[tmp]>num[j])             tmp= j;       }       if(tmp != i)         swap(&num[tmp],&num[i]);   }}

执行结果:

6 3 8 5 71 0 4 2   最初数组元素

0 3 8 5 71 6 4 2   第一轮

0 1 8 5 73 6 4 2   第二轮

0 1 2 5 73 6 4 8   第三轮

0 1 2 3 75 6 4 8   第四轮

0 1 2 3 45 6 7 8   第五轮

0 1 2 3 45 6 7 8   (多余)

0 1 2 3 45 6 7 8   (多余)

0 1 2 3 45 6 7 8   (多余)

 

根据执行结果也需要做优化。加标志位,类同于冒泡法。

0 0
原创粉丝点击