课件16张PPT。选择排序算法及其程序实现四位大哥比身高27363218(1)第一遍冒泡(2)第二遍冒泡(3)第三遍冒泡共进行( )次比较,( )次交换我来拼一拼选择排序的基本思想 选择排序(升序)的方法是
第1步: 找出n数组元素(d(1)~d(n))中最小的数据,使它与第1个数据d(1) 交换位置。
第2步:在余下的元素d(2)~d(n))中继续找最小的数据,使它与第2个数据d(2) 交换位置。
……………………
第i步:在剩下的元素(d(i)~d(n)) 中找出最小数,使它与第i个数据d(i)交换位置。 *代表未排序子序列中 的最小元素273632184个数选择排序(升序)(1)第1遍排序(2)第2遍排序(3)第3遍排序共进行( )次交换算法演示分析第 1 遍 选择k=1
For j=2 to 4
if d(k)>d(j) then k=j
Next j
交换d(1)和d(k)
j=2If k<>1 then第2遍选择j=3k=2
For j=3 to 4
if d(k)>d(j) then k=j
Next j
If k<>2 then 交换d(2)和d(k) 第3遍选择j=4k=3
For j=4 to 4
if d(k)>d(j) then k=j
Next j
If k<>3 then 交换d(3)和d(k) k=1
For j=2 to 4
if d(k)>d(j) then k=j
Next j
If k<>1 then 交换d(1)和d(k)k=2
For j=3 to 4
if d(k)>d(j) then k=j
Next j
If k<>2 then 交换d(2)和d(k) k=3
For j=4 to 4
if d(k)>d(j) then k=j
Next j
If k<>3 then 交换d(3)和d(k) i=1i=2i=3找一找带颜色数字与i的关系?n=4总结1用i记录选择排序遍数总结1*第1遍选择 ,j从2开始到4k=1
For j=2 to 4
if d(k)>d(j) then k=j
Next j
If k<>1,交换d(1)和d(k)k=2
For j=3 to 4
if d(k)>d(j) then k=j
Next j
If k<>2 then 交换d(2)和d(k)*第2遍选择 ,j从3开始到4*第3遍选择 ,j从4开始到4k=3
For j=4 to 4
if d(k)>d(j) then k=j
Next j
If k<>3 then 交换d(3)和d(k)For i=1 to 3
k=i
for j=i+1 to 4
if d(k)>d(j)then k=j
next j
if k <> i then
交换d(i)和d(k)
end if
Next i如果是 n个数呢?n个数选择排序的基本算法找出d(i)至d(n)中的最小值 将最小值与第i个数据d(i)交换位置 For j = i+1 to nNext j 外循环 内循环程序实现For i = 1 To n - 1
k = i
For j = i + 1 To n
If d(k) > d(j) Then
k = j
endif
Next j
If k <> i Then
t = d(i)
d(i) = d(k)
d(k) = t
End If
Next i试一试:利用已学的选择排序算法,对初始数据【49,38,65,97,76,13,27,59】升序排序。共进行( )次比较,( )次交换选择排序的比较次数:n*(n-1)/2
冒泡排序的比较次数:n*(n-1)/2
冒泡排序的交换次数:交换次数:与待排序元素的初始状态有关,当待排序已经有序时,交换0次。最坏情况下:选择排序的交换次数:n-1比较次数:
与待排序元素的初始状态无关n(n-1)/2第二课时:程序界面list1list2text1command2command1课后作业作业本44页练习巩固
作业本49页练习巩固