本文實(shí)例講述了Python排序算法之選擇排序定義與用法。分享給大家供大家參考,具體如下:
選擇排序
選擇排序比較好理解,好像是在一堆大小不一的球中進(jìn)行選擇(以從小到大,先選最小球?yàn)槔?/p>
1. 選擇一個(gè)基準(zhǔn)球
2. 將基準(zhǔn)球和余下的球進(jìn)行一一比較,如果比基準(zhǔn)球小,則進(jìn)行交換
3. 第一輪過后獲得最小的球
4. 在挑一個(gè)基準(zhǔn)球,執(zhí)行相同的動(dòng)作得到次小的球
5. 繼續(xù)執(zhí)行4,直到排序好
時(shí)間復(fù)雜度:O(n^2). 需要進(jìn)行的比較次數(shù)為第一輪 n-1,n-2....1, 總的比較次數(shù)為 n*(n-1)/2
直接上代碼:
def selectedSort(myList): #獲取list的長度 length = len(myList) #一共進(jìn)行多少輪比較 for i in range(0,length-1): #默認(rèn)設(shè)置最小值得index為當(dāng)前值 smallest = i #用當(dāng)先最小index的值分別與后面的值進(jìn)行比較,以便獲取最小index for j in range(i+1,length): #如果找到比當(dāng)前值小的index,則進(jìn)行兩值交換 if myList[j]<myList[smallest]: tmp = myList[j] myList[j] = myList[smallest] myList[smallest]=tmp #打印每一輪比較好的列表 print("Round ",i,": ",myList)myList = [1,4,5,0,6]print("Selected Sort: ")selectedSort(myList)執(zhí)行結(jié)果:

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選