(一)編寫ssort.py 程式碼如下:
cs= [-1, 5, 8, 1, 3] print ("\n1:選擇排序前: \ncs=",cs)
print ("\n2:排序過程…") for i in range(1,len(cs)-1): print ("\nStep i=", i, "\ncs=",cs) mini=i print ("mini=", mini) for j in range(i+1,len(cs)): if cs[j] < cs[mini] : mini=j print ("j=",j,"mini 調整為",mini) else: print ("j=",j,"mini 仍為",mini) print ("swap(",cs[i],",", cs[mini],") at i=",i, "mini=", mini) t=cs[mini] cs[mini]=cs[i] cs[i]=t print ("=>cs=",cs)
print ("\n3:選擇排序之後 \ncs=",cs)
(二)執行結果如下: $ python3.7 ssort.py 1:選擇排序前: cs= [-1, 5, 8, 1, 3]
2:排序過程…
Step i= 1 cs= [-1, 5, 8, 1, 3] mini= 1 j= 2 mini 仍為 1 j= 3 mini 調整為 3 j= 4 mini 仍為 3 swap( 5 , 1 ) at i= 1 mini= 3 =>cs= [-1, 1, 8, 5, 3]
Step i= 2 cs= [-1, 1, 8, 5, 3] mini= 2 j= 3 mini 調整為 3 j= 4 mini 調整為 4 swap( 8 , 3 ) at i= 2 mini= 4 =>cs= [-1, 1, 3, 5, 8]
Step i= 3 cs= [-1, 1, 3, 5, 8] mini= 3 j= 4 mini 仍為 3 swap( 5 , 5 ) at i= 3 mini= 3 =>cs= [-1, 1, 3, 5, 8]
3:選擇排序之後 cs= [-1, 1, 3, 5, 8]
|