排序演算法彙總

2021-08-22 15:04:47 字數 825 閱讀 5643

- 氣泡排序

原理: 相鄰兩個元素之間相互對比, 如果第乙個元素大於第二個元素, 則交換位置

效果: 最大的元素不斷的往後冒泡

特點: 穩定 / 最壞時間複雜度為 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 ...