内容正文:
算法复习专题六 选择排序
【课前先导】
1.基本概念
选择排序算法是对参加排序数组的所有元素中找出最小(或最大)数据的元素,使它与第一个元素中数据相互交换位置。然后在余下的元素中找出最小(或最大)的数据的元素,与第二个元素中的数据交换位置。以此类推,直到所有元素成为一个有序的序列。
2.实现过程
【案例】5,3,1,2,4的升序选择排序流程
第一遍开始前:5,3,1,2,4
第一次比较后:5,3,1,2,4
第二次比较后:5,3,1,2,4
第三次比较后:5,3,1,2,4
第四次比较后:5,3,1,2,4
第一遍排序后的结果:1,3,5,2,4
比较4次,交换1次
第二遍开始前:1,3,5,2,4
第一次比较后:1,3,5,2,4
第二次比较后:1,3,5,2,4
第三次比较后:1,3,5,2,4
第二遍排序后的结果:1,2,5,3,4
比较3次,交换1次
第三遍开始前:1,2,5,3,4
第一次比较后:1,2,5,3,4
第二次比较后:1,2,5,3,4
第三遍排序后的结果:1,2,3,5,4
比较2次,交换1次
第四遍开始前:1,2,3,5,4
第一次比较后结果:1,2,3,5,4
第四遍排序后的结果:1,2,3,4,5
比较1次,交换1次
共比较10次,交换4次。
【实践】3,1,2,5,4的降序选择排序流程
共比较__________次,交换____________次。
3.基本代码(升序) 范围在a(start)和a(end)之间的选择排序
For i = 1 to n-1
k=i
For j = _______ to n
If a(k)>a(j) Then ________
Next j
If ___________ Then
t=a(i):a(i)=a(k):a(k)=i
EndIf
Next i
For i = start to end-1
k=i
For j = _______ to ______
If a(k)>a(j) Then ________
Next j
If ___________ Then
t=a(i):a(i)=a(k):a(