1.选择排序算法的概念选择排序算法是对冒泡排序算法的改进
这种方法是对参加排序数组的所有元素中找出最小(或最大)数据的元素,使它与第一个元素中数据相互交换位置
然后在余下的元素中找出最小(或最大)的数据的元素,与第二个元素中的数据交换位置
以此类推,直到所有元素成为一个有序的序列
某数组d共有4个元素构成,每个元素的值如下表所示:3.5选择排序算法及程序实现数组元素d(1)d(2)d(3)d(4)值1051239772用选择排序法按升序进行排序的过程,从数组第一个元素开始起:第1遍:寻找从d(1)到d(4)范围内的最小数据d(k),即k=4,将d(1)与d(k)互换数据:共比较数据3次,交换数据1次
第2遍:寻找从d(2)到d(4)范围内的最小数据d(k),即k=3,将d(2)与d(k)互换数据:共比较数据2次,交换数据1次
第3遍:寻找从d(3)到d(4)范围内的最小数据d(k),即k=4,将d(3)与d(k)互换数据:总共比较数据1次,交换数据1次
显然,通过上述3遍处理,数组d中最小、第2小、第3小的数据已经分别存储在数组元素d(1)、d(2)、d(3)中,即数组元素d(1)到d(3)变为有序,而剩下的d(4)中的数据自然是数组中的最大数据
因此,通过3遍这样的处理,整个数组内的数据将是有序的
4个元素共需进行3遍加工处理,总的比较次数为3+2+1=6次,而总计交换次数每一遍一次,共计只有3次
对于n个元素的数组,用选择算法进行排序时,比较次数与冒泡算法相同,但交换的次数比冒泡排序要少,因此它具有较高的效率
2.选择排序算法的程序实现选择排序的程序同样采用双重For循环嵌套来实现,外循环来控制是第几遍加工,内循环用来控制数组内进行排序元素的下标变化范围
在每一遍加工结束,都需要用一个变量来存储这一遍加工中所找出的最小(或最大)的数据在数组内的下标
现有n个数据,分别存