1.i=0被定為第乙個,後面逐漸比較這個值+1位置,+2位置,知道+(n-1)位置,第一輪排序結束,最小值被最先固定,開始第二輪,i++,在於後面的值進行比較,輪迴往復,直到i = n-1,迴圈結束。
注:這樣的好處是,最小值被最先固定。
public static int bubblesort(int arr) }}
return arr;
}
2.將元素之間兩兩相互比較,前者大於後者則交換,不大於則兩者均向後移動一位,再次進行比較,一次while迴圈比較完成後,如果出現值交換現象則將flag置為ture,意味出現值交換,開始下乙個while並且falg置為false,while迴圈直到一次for迴圈後,沒有值被進行交換,這主要體現是值flag不再被改變,依舊是while開始迴圈的false,這時候我們知道for迴圈,出現沒有值被交換的情況,即所以值均是公升序排序,排序結束。
注:這樣的方法就是每一輪while後,最大值一直都會排在後面,最大值被最先確認。
//氣泡排序部分,引數形式與標準庫的快排一樣
//cmp:自定義的比較函式
int sort(int *ps,int *pe,bool(*cmp)(int,int))}}
return 0;
}
經典排序之氣泡排序
邊學習邊記載。氣泡排序是經典排序之一,時間複雜度是o n 2 以如下陣列為例 陣列 5 6 3 1 8 7 2 4,以從小到大排序為例 i表示陣列下標,初始化為0 5 6 3 1 8 7 2 4 第一輪是從0到n 1比較,n為陣列的長度 1 首先i 0 比較5,6,由於5 6,所以保持不變 2 i ...
經典排序之氣泡排序
關於排序,是我們經常用到的。目前,就我了解的,應該有 氣泡排序 選擇排序 希爾排序 折半排序 快速排序 堆排序 桶排序 歸併排序 基數排序 其實還有很多,慢慢來吧乙個乙個總結一下,希望在鞏固自己的同時也能夠幫到大家 氣泡排序的原理 以公升序舉例 氣泡排序就是從第乙個數開始和後乙個數比較 如果如果前者...
經典排序之 氣泡排序
氣泡排序和選擇排序一樣是我們接觸相對早的一種排序演算法。下面簡單講解一下氣泡排序的思想 演算法思想 氣泡排序,顧名思義,排序的過程就像氣泡在水裡上公升一樣。就是對陣列進行不斷地掃瞄,每當遇到比標記的資料大的元素就交換兩個資料。這樣掃瞄一遍之後就會產生乙個最小或最大的元素位於最終的位置上。之後進行第二...