算法與程序設計——選擇排序
if d(j) < d(min) then min = j
next j
if min <> i then
temp = d(i):d(i) = d(min):d(min) = temp
end if
next i
for m = 1 to n
print(str(d(m)))
next m
[調試程序]
[擴展提高]
我們知道,冒泡排序的效率比較低,主要因為數據交換的次數多,那我們如何知道選擇排序中數據交換的次數?
[學生帶著問題思考并實踐]
——可利用一個自定義integer型變量,初值0,記錄數據交換次數,在程序交換數據部分令其自加1,程序結束時輸出結果。
[完整的程序為]
dim i,j,min,m,cishu as integer
cishu=0
for i = 1 to n-1
min = i
for j = i + 1 to n
if d(j) < d(min) then min = j
next j
if min <> i then
temp = d(i):d(i) = d(min):d(min) = temp:cishu=cishu+1
end if
next i
for m = 1 to n
print(str(d(m)))
next m
print(str(cishu))
【問題研討】
對于規模非常大時,計算選擇排序與冒泡排序交換次數,研究時間、空間復雜度
利用網絡、圖書,發現更優秀的排序算法,并對各種算法進行效率分析