樹心幽徑

« 20191111用python設計氣泡排序法(採升序排列,ascending) | Main | 20191113延伸標示語言(XML)和gpx航跡檔 »

20191111用python編寫選擇排序法程式(採升序排列,ascending)
2019/11/11,20:09

(一)編寫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]

 

迴響

 
Accessible and Valid XHTML 1.0 Strict and CSS Powered by LifeType