選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有乙個將被移到其最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬於非常好的一種。
排序過程:
紅色表示當前最小值,黃色表示已排序序列,藍色表示當前位置。
defselection_sort(alist):
n =len(alist)
#需要進行n-1次選擇操作
for i in range(n-1):
#記錄最小位置
min_index =i
#從i+1位置到末尾選擇出最小資料
for j in range(i+1, n):
if alist[j]
min_index =j
#如果選擇出的資料不在正確位置,進行交換
Python排序演算法之選擇排序
在一趟排序過程中記錄最小的數,放到第乙個位置上 再來一趟排序記錄無序區最小的數,放到第二個位置上 依次類推 最壞情況 o n 2n 2 n2 平均情況 o n 2n 2 n2 最好情況 o n 2n 2 n2 o 1 不穩定 簡單 趟數 n 1 無序區範圍 趟數 1 n usr bin python...
python演算法之選擇排序
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...
Python演算法之選擇排序(八)
原理 第一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小 大 元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。選擇排序是不穩定的排序方法。def selection alist n len alist 需...