氣泡排序,乙個經典的排序演算法,因在演算法執行中,極值會像水底的氣泡一樣逐漸冒出來,因此而得名。
氣泡排序的過程是比較兩個相鄰元素的大小,然後根據大小交換位置,這樣從列表左端開始冒泡,最後最大值會依次從右端冒出。
python實現氣泡排序:
def bubble_sort(nums):
for i in range(len(nums) - 1):
for j in range(len(nums) - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
return nums
python實現氣泡排序的核心思想是通過從列表一端迭代迴圈元素,再通過乙個迴圈讓這個元素之後的元素相鄰兩個比較,從而依次將最大值移動到最末端,如下圖示意。
本想放gif圖的,放不上有點問題。
關於氣泡排序的時間複雜度,在上面python實現的**中時間複雜度是
image
,當然可以再考慮一下極端的情況:當佇列已經從小到大排好序或者從大到小排好序,從小到大排好順序時可以只掃瞄一遍就結束排序,此時時間複雜度為o(n),如果是從大到小,那麼就需要掃瞄n-1次,同時需要比較交換n-1次,時間複雜度為
Python實現氣泡排序演算法
第一天學習python寫的程式,函式和控制語句沒有括號總感覺有頭沒尾怪怪的,寫長了會不會連語句在什麼控制流裡都搞蒙了呢?coding utf 8 氣泡排序演算法 def bubble sort list,n exchange n 1 while exchange 0 bound exchange e...
python實現冒泡演算法排序
第一篇部落格就以冒泡演算法作為先行者吧。冒泡演算法通俗一點的理解就是兩個數值進行比較,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成,就像小魚吐泡泡一樣。氣泡排序演算法具體的步驟大致為 降序為例...
python排序演算法的實現 冒泡
1.演算法描述 1 共迴圈 n 1 次 2 每次迴圈中,如果 前面的數大於後面的數,就交換 3 設定乙個標籤,如果上次沒有交換,就說明這個是已經好了的。2.usr bin python coding utf 8 defbubble l flag true for i in range len l 1...