選擇排序比較好理解,好像是在一堆大小不一的球中進行選擇(以從小到大,先選最小球爲例):spa
1. 選擇一個基準球code
2. 將基準球和餘下的球進行一一比較,若是比基準球小,則進行交換blog
3. 第一輪事後得到最小的球排序
4. 在挑一個基準球,執行相同的動做獲得次小的球class
5. 繼續執行4,直到排序好List
時間複雜度:O(n^2). 須要進行的比較次數爲第一輪 n-1,n-2....1, 總的比較次數爲 n*(n-1)/2select
直接上代碼:im
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)
執行結果:img