Python排序算法之選擇排序


選擇排序

選擇排序比較好理解,好像是在一堆大小不一的球中進行選擇(以從小到大,先選最小球為例):

  1. 選擇一個基准球

  2. 將基准球和余下的球進行一一比較,如果比基准球小,則進行交換

  3. 第一輪過后獲得最小的球

  4. 在挑一個基准球,執行相同的動作得到次小的球

  5. 繼續執行4,直到排序好

時間復雜度:O(n^2).  需要進行的比較次數為第一輪 n-1,n-2....1, 總的比較次數為 n*(n-1)/2

直接上代碼:

def selectedSort(myList):
    #獲取list的長度
    length = len(myList)
    #一共進行多少輪比較
    for i in range(0,length-1):
        #默認設置最小值得index為當前值
        smallest = i
        #用當先最小index的值分別與后面的值進行比較,以便獲取最小index
        for j in range(i+1,length):
            #如果找到比當前值小的index,則進行兩值交換
            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)

執行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM