氣泡排序法(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個,這樣最大的...