演算法 選擇排序的Python實現

2021-10-25 10:32:12 字數 938 閱讀 3551

又稱冒泡演算法:次第取出最值順序排位

如從小至大排序輸出:

——第一次是遍歷比較並取出列表中的最小值,放置於輸出列表第一位

——接下來遍歷剩下列表並取出其中最小值,放置於輸出列表第二位

——重複以上步驟

輸入亂序**,輸出為有序列表

def

findsmalleast

(arr)

: smallest = arr[0]

smallest_index =

0for i in

range(1

,len

(arr)):

if arr[i]

< smallest:

smallest = arr[i]

smallest_index = i

return smallest_index

defselectionsort

(arr)

: newarr =

for i in

range

(len

(arr)):

smallest = findsmalleast(arr)

)return newarr

print

(selectionsort([3

,213,21

,231,12

,23])

)

finsmallest:

用於查詢最值

selectionsort:

用於匯入列表,及應用finsmallest方法輸出有序列表

*根據pep8規範:

​ newarr

​ variable in function should be lowercase

​ (函式中的變數應該小寫)

​ 但本**為了表意清晰,故使用駝峰法表示

選擇排序演算法 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實現選擇排序演算法

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