Python實現幾種簡單的排序演算法
阿新 • • 發佈:2018-11-16
一.氣泡排序
概念:為一個無序的列表排成有序的
實現過程描述:(升序)
1.比較相鄰的元素,如果第一個比第二個大,就交換他們的位置
2.對每一對相鄰元素重複1的工作,從開始第一隊到最後一對,最後結束的時候最大的數會在後面
3.針對所有元素重複1,2的工作,除了最後一個數,因為最後的數最大,省略這個過程
4.持續每次對越來越少的元素重複上面的步驟,知道沒有任何一對數字需要比較
複雜度: 時間複雜度為O(n^2)
程式碼實現:
#給定一個列表 list = [11,54,3243,323,3,82,121,33,4,5,7,213,51]#氣泡排序 for i in range(1,len(list)): found =False #定義一個變數為False for n in range(len(list)-i): if list[n]>list[n+1]: #當出現逆序交換下表n和n+1的位置 temp = list[n] list[n] = list[n+1] list[n+1] = temp found =True #當出現逆序時,改變變數值為True 如果未發現逆序則表示排序已經完成if not found:#當found值為False,直接跳出迴圈 break print(list)
未完待續