氣泡排序 筆記

2021-10-14 16:42:06 字數 763 閱讀 8224

def

bubble_sort

(li)

:for i in

range

(len

(li)-1

):# 這個迴圈負責設定氣泡排序進行的次數

for j in

range

(len

(li)

- i -1)

:# j為列表下標

if li[j]

> li[j +1]

: li[j]

, li[j +1]

= li[j +1]

, li[j]

return

print

(li)

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

一趟排序完成後, 則無序區減少乙個數,有序區增加乙個數

什麼時候最快?

當輸入的資料已經是正序時(都已經是正序了,我還要你氣泡排序有何用啊)。 時間複雜度: o(n)

什麼時候最慢?

當輸入的資料是反序時(寫乙個 for 迴圈反序輸出資料不就行了,幹嘛要用你氣泡排序呢,我是閒的嗎)。 時間複雜度: o(n*2)

個人理解話述:

2層迴圈,第一層迴圈負責設定氣泡排序進行的次數,第二層迴圈列表的下標,判斷如果第乙個數字大於第二個數字,那麼交換這兩個值得位置。

筆記 氣泡排序

氣泡排序是最簡單的交換排序方法。基本演算法思想 首先將第乙個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序 l.r 1 key l.r 2 key 則將兩個記錄交換之,然後比較第二個記錄和第三個記錄的關鍵字。依此類推,直至第n 1個記錄和第n個記錄的關鍵字進行過比較為止。上述過程稱為第一趟冒泡過...

氣泡排序筆記

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。比較相鄰的元素。如果第乙個比第二個大,就交...

排序演算法筆記2 氣泡排序

顧名思義,交換排序就是根據兩個關鍵字值的比較結果,不滿足次序要求時交換。氣泡排序和快速排序是典型的交換排序演算法。其中快速排序是目前最快的排序演算法 氣泡排序是一種最簡單的交換排序演算法,通過兩兩比較,逆序交換,使關鍵字大的像泡泡一樣冒出來放在尾部。重複執行氣泡排序,最終得到有序序列。1 待排序的元...