10 資料結構與演算法 氣泡排序

2021-08-30 04:37:09 字數 772 閱讀 9933

"""

氣泡排序:

思想:從列表的開頭處開始,並且比較一對資料項,知道移動到列表的末尾。

每當成對的兩項之間的順序不正確時,演算法就交換其位置。

這個過程的效果就是將最大的項以冒泡的方式排到列表的末尾。

然後,演算法從列表開頭到倒數第2個列表項重複這乙個過程,依次類推,直到該演算法從列表的最後一項開始執行。

"""import random

#定義乙個交換函式

def swap(lyst,i,j):

temp = lyst[i]

lyst[i] = lyst[j]

lyst[j] = temp

#定義氣泡排序

def bubble_sort(lyst):

n = len(lyst)

while n > 1:

i = 1

while i < n:

if lyst[i] < lyst[i-1]:

swap(lyst,i,i-1)

i += 1

n -= 1

return lyst

def test_sort():

lyst = list(range(10))

lyst = random.shuffle(lyst) #打亂排序

assert bubble_sort(lyst) == lyst

if __name__ == "__main__":

test_sort()

資料結構與演算法 排序 氣泡排序

兩兩相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。氣泡排序基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此...

資料結構與演算法 排序 氣泡排序

今天來學一下十大排序 首先,我們先了解下各個排序的時間複雜度 冒泡 選擇 插入 歸併 快速 希爾 堆排序屬於比較排序 在這裡,我們預設排序是從小到大排序。乙個動態演示各種排序演算法的動畫 visualgo 如果相等的兩個元素,在排序前後的相對位置保持不變,那麼這個演算法是穩定的排序演算法。比如 5 ...

資料結構與演算法 氣泡排序

氣泡排序的思想是,從前往後 或從後往前 掃瞄,每找乙個逆序對,就將它更正過來,這樣每一輪總可以找到乙個最大值或最小值。1 從前往後掃瞄,每次找到的較大值插入到後面,第一層迴圈代表當前插入位置。public static void sinksort int nums,int start,int end...