10_資料結構與演算法_氣泡排序_Python實現
阿新 • • 發佈:2018-11-19
""" 氣泡排序: 思想: 從列表的開頭處開始,並且比較一對資料項,知道移動到列表的末尾。 每當成對的兩項之間的順序不正確時,演算法就交換其位置。 這個過程的效果就是將最大的項以冒泡的方式排到列表的末尾。 然後,演算法從列表開頭到倒數第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()