嵌入式數據結構與算法之冒泡排序講解
時間:2023-10-26 來源:華清遠見
Hello~相信一部分同學聽到數據結構和算法第一反應就是太難了!其實只要明白它的思想,理解了它的思路,一切都是毛毛雨~
那今天就以同學們感興趣的冒泡排序為例給大家詳細說說。
首先,什么是冒泡排序呢?
它其實就是一種簡單的排序算法,也是一種穩定排序算法,至于為什么叫這個名字?因為越小的元素會通過交換慢慢“浮”到數列的頂端(升序或降序排列),就像我們在喝碳酸飲料時,把它倒入杯子里面二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。說到這大家就明白了,其實冒泡排序就是從大到小排序或者從小到大排序的一種方法。
它實現原理就是相鄰的兩個數兩兩比較,如果符合整體排序順序就繼續向后判斷,否則就將兩個數交換。當待排序序列中有相同的元素時,它們的相對位置在排序前后不會發生改變,所以稱它為穩定排序算法。
下面我們以從小到大排序為例,來看一下它究竟是怎么實現的。
比如現在有5個數:9 8 7 1 3
第一輪:

第二輪:

第三輪:

第四輪:

通過以上比較過程可以得出,如果比較n個數,只需要比較n-1輪即可;而且每輪比較的次數會隨著比較輪數的增加而減小,而且輪數和每輪比較次數的和是固定的值,都是比較的個數n。
c代碼實現:


那根據以上例子推出當有n個數進行排序時,可以套用以下代碼:
只需要修改N 標識的數值,輸入對應個數的數就可以從小到大輸出排序后的值。


