python排序演算法的實現 選擇

2022-02-21 23:28:29 字數 605 閱讀 9789

1.演算法:

對於一組關鍵字, 首先從k1,k

2,…,k

n中選擇最小值,假如它是 k

z,則將k

z與 k

1對換;

然後從k2,k

3,… ,k

n中選擇最小值 k

z,再將kz與k

2對換。

如此進行選擇和調換n-2趟,第(n-1)趟,從kn-1、kn中選擇最小值 kz將kz與kn-1對換,最後剩下的就是該序列中的最大值,乙個由小到大的有序序列就這樣形成。

2.python  **:

def

selection_sort(list2):

for i in

range(0, len (list2)):

min =i

for j in range(i + 1, len(list2)):

if list2[j] min =j

list2[i], list2[min] = list2[min], list2[i] #

swap

結果為:[2, 3, 4, 21, 33, 44, 45, 67]

3. 時間複雜度  o(n*n)

選擇排序演算法 python實現

以公升序為例,選擇排序的基本思想是,選擇乙個基準數作為最小數,將剩下的數與之一一進行比較,如果有更小的數,則與基準數進行交換。基準數不斷後移,重複上述步驟。時間複雜度是o n 2 因為比較次數是 n 1 n 2 2 1 n n 1 2 n 1 n 2 2 1 n n 1 2class selsort...

python實現選擇排序演算法

class sort 選擇排序 演算法思想 不斷尋找剩餘元素中最小的乙個與當前位置元素交換 演算法特性 1 執行時間與輸入的初始狀態無關 2 資料移動是最少的 時間複雜度 o n 2 空間複雜度 t 1 穩定性 不穩定 def selection self,m 統計陣列長度 length len m...

python實現選擇排序演算法

選擇排序,簡單而直觀,其原理是把序列中的最小值或者最大值找出來放在起始位置,然後再從剩下的序列中找出極值放到起始位置之後,以此類推最後就完成排序。完成這個過程大致思想 首先需要乙個記錄器,記錄排序排到第幾個位置了,然後在剩餘的序列中找到極值下標,最後將記錄器位置和極值位置元素交換,完成本次選擇排序。...