本文首發于微信公眾號:"演算法與編程之美",歡迎關注,及時了解更多此系列文章,
引言
在生活中,水中的氣泡常常冒出水面,似乎它們會自動排序,其實在演算法排序中,也有著一種類似的演算法,這就是今天要引入的演算法-“冒泡演算法”,
冒泡演算法,顧名思義,就是保證每個資料像水中的水泡一樣,一點一點的向前方挪去,而“不同大小的水泡”的順序不是隨機的,
問題描述
冒泡排序是一種計算機科學領域的較簡單的排序演算法,原理如下:
1. 先比較相鄰的元素,如果第一個比第二個大,就交換他們兩個,
2. 對每一對相鄰元素做同樣的作業,從開始第一對到結尾的最后一對,在這一點,最后的元素應該會是最大的數,
3. 重復以上2的步驟,直到沒有元素可以進行比較,
注意,冒泡排序的平均時間復雜度為O(n2)
例如:要比較排序陣列:[10,1,35,61,89,36,55](升序)
首先首次排序,10比1大,因此交換位置,,之后10和35比較,10小于35,不交換位置,35與61比較,前者小于后者,不交換位置,61和89比較,61小于89,不交換位置,以此類推,直到完成首次排序,陣列順序為[1,10,35,61,36,55,89],
發現陣列順序仍然不對,因此進行第二次排序:1和10比較,1小于10,不交換位置,10
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286588.html
標籤:其他
下一篇:【C++】大綱及疑惑點一
