三、剖析氣泡排序(高階):
四、成本
關於各種排序 (詳情)
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相比,如果比...