我---对‘数据结构’中‘排序’的理解 ---------2:选择排序--(一)简单选择排序

来源:互联网 发布:电子白板软件 编辑:程序博客网 时间:2024/05/08 08:27

————————————————————摘自《数据结构》(严蔚敏)

 

===可以参照下图简单选择排序理解,即===

第1趟 :在7个记录中选 最小的(1),作为第1个记录;

第2趟 :在6个记录中选 最小的(3),作为第2个记录;

第3趟 :在5个记录中选 最小的(4),作为第3个记录;

第4趟 :在4个记录中选 最小的(5),作为第4个记录;

第5趟 :在3个记录中选 最小的(6),作为第5个记录。。。。

 

 

 

简单选择排序------------图例-----------

 

 

--------------------------------图片摘自:

http://www.cnblogs.com/jeky/archive/2009/03/31/1426537.html

 

百度百科:

算法思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;

然后在剩下的数当中再找最小的与第二个位置的数交换,

如此循环到倒数第二个数和最后一个数比较为止。

——————————————————————————————————————————————————————

for(i=0;i<9;i++)

{

k=i;

for(j=i+1;j<10;j++)

{

   if(a[k]>a[j])

{

   K=j;//选择排序法,开始的时候椅子 a[i] 谁也不给,放在一边让大家看着,找个人k记录比赛结果,然后发椅子 a[i]

}

//椅子 a[i] 只发给a[k];

int b;

b=a[i];

a[i]=a[k];

a[k]=b;

}

}

 

——————————————————————————————————————————————————————

 

------我自己写算法的时候,由于没有透彻理解 简单选择排序 的核心,红字里面是这样实现的:(这样就变成了另一种算法定位比较交换法

   if(a[k]>a[j])

{

  

int b;

b=a[i];

a[i]=a[k];

a[k]=b;//一次比较的时候,椅子a[i]都可能会被交换的

}

 

——————————————————————————————————————————————————————

原创粉丝点击