排序演算法 氣泡排序法

2021-07-14 23:02:40 字數 866 閱讀 6645

氣泡排序法(bubble sort)是所有排序演算法中最簡單,最基本的一種。氣泡排序法的基本思路就是交換排序,通過相鄰資料的比較來達到排序的目的。

氣泡排序演算法通過多次比較和交換資料來實現排序,其排序流程如下:

(1)對陣列中的各元素依次比較相鄰元素的大小。

(2)如果前面的資料大於後面的資料,就交換這兩個資料。經過第一輪排序,則最大值已經排到最後。

(3)再用同樣的方法將剩下的資料逐個比較,最終得到由小到大陣列。

為了更清晰的理解氣泡排序演算法的流程。這裡我們舉乙個實際資料的例子來一步步的執行氣泡排序。對5個整型資料118,101,105,127,112,這是一組無序資料。對其執行氣泡排序過程,如圖4-2所示,氣泡排序演算法執行步驟如下:

如圖我們可以看出經過第一輪的四次排序,其中最大值已經排到了最末尾位置。繼續排序即可實現所有資料由小到大顯示。

從上面的例子,我們可以非常直觀的了解氣泡排序的執行過程。整個氣泡排序過程可以形象的類似於水泡的浮起過程,因此而得名。氣泡排序演算法在對n個資料進行排序時,無論原資料有無順序,都需要進行n-1步中間排序。這種排序思路簡單直觀,但是缺點就是執行的步驟有點長,效率不高。

一種改進的方法,就是在每次中間排序之後,比較一下資料是否已經按照順序排列完成。如果完成則退出排序過程,否則繼續排序。這樣,對於資料比較有規則的,可以加速演算法的執行過程。

氣泡排序演算法**如下:

void bubblesort(int a)

}if(tag==0)break;//如果tag依舊等於0即說明未發生交換,排序完成}}

演算法排序 氣泡排序法

接下來我將用幾篇文章來講述關於演算法排序的思想,首先是最簡單的氣泡排序法。它適用於所有的情況,時間複雜度較大 為o n 那麼我將用圖示和 來解釋這個演算法。首先,氣泡排序法的思想就是將最大值或者最小值置於最上方或者最下方。那麼我們需要兩個for迴圈,第乙個for迴圈中每一次迴圈的結果是將未排序的部分...

演算法 氣泡排序法

氣泡排序就是把小的元素往前調或者把大的元素往後調 c語言 include define size 8 void bubble sort int a,int n void bubble sort int a,int n int main int i bubble sort number,size fo...

冒泡法排序演算法

演算法筆記 再回顧冒泡法排序 冒泡法是我們學習程式設計接觸到的第乙個排序演算法,簡單而形象,整個比對過程跟泉水冒泡十分形似。冒泡法排序首先拿第乙個元素與相鄰元素進行比較,如果它比較大,就相互交換,這樣第一輪遍歷下來,最大的值就確定了,第n輪也是如此,都是從第乙個開始,一直比較到倒數第n個,這樣最大的...