由淺而深入 氣泡排序

2021-09-26 06:55:42 字數 1223 閱讀 3639

三、剖析氣泡排序(高階):

四、成本

關於各種排序 (詳情)

1.起源:

氣泡排序,冒泡,冒泡,顧名思義越大的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「氣泡排序」

2. 原理(原理很重要,原理沒動何談實現):

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

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,

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

3.詳情解析:

俗話說:沒圖就是沒有靈魂的教學,再次奉上見解,

python**實現(為大家更好的理解,就拿原始簡單**,望厲害的同學諒解,)

拿走即用#

num_list=[1,3,5,2,5,2,3,5,3]

print(num_list)

length=len(num_list)

print("氣泡排序後:")

#氣泡排序開始:

for i in range(length-1):

for j in range(length-i-1):

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

tmp =num_list[j]

num_list[j]=num_list[j+1]

num_list[j+1]=tmp

print(num_list)

關於冒泡深層次的特點(面試):

屬於穩定排序演算法

屬於比較演算法

屬於犧牲時間換取空間的演算法

屬於內部排序(記憶體中進行,但不涉及內、外存資料的交換)

冒泡優點(常識):

簡單易學 (最大的優點,經常用來教學入門)

**容易實現

空間複雜度較低

冒泡缺點(常識):

效率極其低下,(以至於基本上不使用冒泡)

時間複雜度較高

時間複雜度:

最好:o(n)

最壞:o(n^2)

平均時間複雜度:o(n^2)

冒泡空間複雜度

空間複雜度:o(1)

深入淺出理解排序演算法之 氣泡排序

include void swap int a,int b 氣泡排序 基本思想 第一趟冒泡得到乙個關鍵字最小的記錄,第二趟得到次小值 針對每一趟 兩兩相鄰紀錄的關鍵字,如果反序則交換直到沒有反序為止 特點 時間效率,總共 n 1趟冒泡,對 j個記錄的表進行一趟冒泡需要 j 1次關鍵字比較,空間效率 ...

經典氣泡排序 由低到高

氣泡排序 據說是八大排序中的其一,通俗的意思就是講,在一組資料中,相鄰元素依次比較大小,最大的放後面,最小的冒上來 我這裡簡單畫了乙個圖,不算流程,但裡面有分析過程 1 確定第1個數的位置 依次與其它資料相比 第1次和2相比,比2大,則右移1位到2的位置上,這時候,1在2位置上了 再與3相比,如果比...

經典氣泡排序 由低到高

氣泡排序 據說是八大排序中的其一,通俗的意思就是講,在一組資料中,相鄰元素依次比較大小,最大的放後面,最小的冒上來 我這裡簡單畫了乙個圖,不算流程,但裡面有分析過程 1 確定第1個數的位置 依次與其它資料相比 第1次和2相比,比2大,則右移1位到2的位置上,這時候,1在2位置上了 再與3相比,如果比...