python 排序演算法

2022-09-14 22:45:31 字數 1637 閱讀 2733

引入:

一、氣泡排序

演算法步驟

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素必定會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個到n個(每迴圈一次,比較出乙個最大值,就排除乙個不需要再被遍歷)。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

#外層迴圈 指定迴圈次數

for i in range(1, len(arr)):

#內層迴圈,比較元素大小

for j in range(0, len(arr)-i):

if arr[j] > arr[j+1]:

arr[j], arr[j + 1] = arr[j + 1], arr[j] //大的值向後移動

return arr

二、 選擇排序演算法步驟:1.外層迴圈指定迴圈次數,定義乙個變數來記錄最小元素的下標:minindex初始值可預設設定第乙個元素的下標minindex = 0

2.內層迴圈,從第二個元素開始,與前乙個元素比較大小,如果後邊的元素值小,則將其下標賦予minindex,反之則不變

3.內層迴圈結束,即完成一圈遍歷後,判斷minindex是否發生改變,如變動,則將其 『下標』 對應的值與初始值(minindex=0時的值)進行交換

4. 外層迴圈繼續第二圈, 重複步驟3(此時預設minindex=1)...一次迴圈直至結束

#外層迴圈

for i in range(len(arr) - 1):

#記錄最小數的索引

minindex =i

#內層迴圈

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

if arr[j]

minindex = j //交換下標

#i 不是最小數時,將 i 和最小數進行交換

排序演算法Python

廢話不說直接看 計數排序 def countsort datalist 最終排好序的陣列 b 0 len datalist 計算用來儲存計數的陣列c的長度 maxnum max datalist minnum min datalist clength maxnum minnum 1 c 0 clen...

排序演算法 python

author xcy 參考別人,盡量自己寫了 命名規則不太好,不建議用list命名,但不好改了。寫的過程中遇到的問題都寫在注釋中 以下方法都在pycharm中除錯過,python3.7,但測試用例不多,難免有錯誤望批評指正 剛發現shell排序 有問題,網上的部落格都是照搬的啊,錯的也搬。還有歸併和...

Python 排序演算法

python 排序演算法 持續更新ing 內建排序 氣泡排序 0 n 2 插入排序 選擇排序 希爾排序 堆排排序 快排排序 歸併排序 呼叫方法預設排序 a 9,5,8,7,4,3,1,6,2,0 a.sort print a 呼叫方法預設排序 a 9,5,8,7,4,3,1,6,2,0 b sort...