数据结构与算法笔记(六)—— 冒泡排序
生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法笔记(六)—— 冒泡排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是冒泡排序
冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重復地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢"浮”到數列的頂端。
算法步驟
冒泡排序的分析
那么我們需要進行 n-1 次冒泡過程,每次對應的比較次數如下表所示:
| 1 | n-1 |
| 2 | n-3 |
| 3 | n-3 |
| ··· | ··· |
| n-1 | 1 |
冒泡排序的演示
時間復雜度
- 最優時間復雜度:O(n)(表示遍歷一次發現沒有任何可以交換的元素,排序結束)
- 最壞時間復雜度:O(n2)
- 穩定性:穩定
代碼實現
def bubble_sort(alist):'''冒泡排序'''n = len(alist)for j in range(n-1):count = 0for i in range(n-1-j):if alist[i] > alist[i+1]:alist[i],alist[i+1] = alist[i+1],alist[i]count += 1if 0 == count:returnif __name__ == '__main__':li = [9,5,6,8,2,7,3,4,1]print(li)bubble_sort(li)print(li)結果:
[9, 5, 6, 8, 2, 7, 3, 4, 1] [1, 2, 3, 4, 5, 6, 7, 8, 9]總結
以上是生活随笔為你收集整理的数据结构与算法笔记(六)—— 冒泡排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构与算法笔记 —— 十大经典排序及
- 下一篇: 数据结构与算法笔记(七)—— 选择排序