選擇排序(selection sort)是⼀種簡單直觀的排序演算法。它的⼯作原理如下。⾸先在未排序序列中找到最⼩(⼤)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最⼩(⼤)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每次交換⼀對元素,它們當中⾄少有⼀個將被移到其最終位置上,因此對n個元素的表進⾏排序總共進⾏⾄多n-1次交換。在所有的完全依靠交換去移動元素的排序⽅法中,選擇排序屬於⾮常好的⼀種。
語法實現:
def select_sort(alist):
"""選擇排序"""
n = len(alist)
for j in range(n - 1):
min_index = j
for i in range(j + 1, n):
if alist[i] < alist[min_index]:
min_index = i
if j != min_index:
alist[j], alist[min_index] = alist[min_index], alist[j]
if __name__ == '__main__':
li = [54, 26, 93, 17, 77, 31, 44, 55, 20]
print(li)
select_sort(li)
print(li)
python排序實現 經典排序演算法python實現
一 氣泡排序 1 從前往後相鄰元素進行對比,如果前乙個元素大於後乙個元素則交換,將最大的元素 浮 到最後的位置上 2 再對前n 1個元素進行相同操作 3 持續對越來越少的元素進行相同操作,每一輪都選出當前的最大數,直到沒有任何元素需要比較 優化 1 若某一輪沒有進行任何交換,則說明已經有序,不需要再...
Python 選擇排序中的樹形選擇排序
目錄 選擇排序裡面主要講了三個排序,分別是簡單選擇排序 樹形選擇排序 堆排序。今天這篇文章主要講樹形選擇排序,樹形選擇排序也被稱為錦標賽排序,樹形選擇排序運用了錦標賽的思想進行排序,樹形選擇排序是指首先對n個記錄的關鍵字進行兩兩比較,然後在n 2個較小者之間再進行兩兩比較,如此重複,直至選出最小的記...
Python 選擇排序
coding utf 8 選擇排序 在所有記錄中選擇最小的乙個元素,與第乙個記錄交換,依次,在其餘的記錄中選擇最小的元素與第二個元素交換 def sellectsort list list 4,1,9,13,34,26,10,7,4 m len list if m 2 如果是空表或只有乙個元素,返回...