python實現選擇排序演算法

2021-09-18 07:13:03 字數 920 閱讀 4458

選擇排序,簡單而直觀,其原理是把序列中的最小值或者最大值找出來放在起始位置,然後再從剩下的序列中找出極值放到起始位置之後,以此類推最後就完成排序。

完成這個過程大致思想:首先需要乙個記錄器,記錄排序排到第幾個位置了,然後在剩餘的序列中找到極值下標,最後將記錄器位置和極值位置元素交換,完成本次選擇排序。

用python實現比較簡單:

關於選擇排序的時間複雜度:

選擇排序的交換操作介於 0 和 (n - 1) 次之間。選擇排序的比較操作為 n (n - 1) / 2 次之間。選擇排序的賦值操作介於 0 和 3 (n - 1) 次之間。

比較次數o(n^2),比較次數與關鍵字的初始狀態無關,總的比較次數n=(n-1)+(n-2)+...+1=n*(n-1)/2。交換次數o(n),最好情況是,已經有序,交換0次;最壞情況交換n-1次,逆序交換n/2次。交換次數比氣泡排序少多了,由於交換所需cpu時間比比較所需的cpu時間多,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實現

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。演算法描述 n個記錄的直接選擇排序可經過n ...