算法与程序设计——选择排序
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))
【问题研讨】
对于规模非常大时,计算选择排序与冒泡排序交换次数,研究时间、空间复杂度
利用网络、图书,发现更优秀的排序算法,并对各种算法进行效率分析