- 氣泡排序
原理: 相鄰兩個元素之間相互對比, 如果第乙個元素大於第二個元素, 則交換位置效果: 最大的元素不斷的往後冒泡
特點: 穩定 / 最壞時間複雜度為 o(n2)
def
bubble
(alist):
# 獲取數列長度
n = len(alist)
for j in range(0, n-1):
# 引入計數變數, 用於記錄元素的交換次數
count = 0
# 如果count大於零, 則代表位置被交換過,排序過的列表是正序的,所以直接跳出迴圈
if count > 0:
break
else:
# 內層迴圈用於比較相鄰元素的大小, n-1-j:表示每次迴圈的最大長度都向前挪一位(每一次迴圈都會產生乙個最大值)
for i in range(0, n-1-j):
# 當前乙個元素大於後乙個元素的時候, 進行位置交換
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
# 每交換一次位置就進行一次計數
count += 1
# 返回排序後的列表
return alist
alist = [1,2,3,4,5,6]
l = bubble(alist)
print(l) # [1, 2, 3, 4, 5, 6]
排序演算法 排序演算法彙總
排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...
排序演算法 排序演算法彙總
排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...
排序演算法 排序演算法彙總
排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...