氣泡排序是一種非常簡單的排序演算法,核心思想就是相鄰的兩個記錄進行兩兩比較,如果不滿足排序條件就交換,滿足就不交換,
例子:給定乙個陣列a
int i,j;
for(i=0;i//要注意的是-i是因為最下面的i個數已經排好了沒必要再排了
for(j=0;j//注意判斷條件,這個與我們想要的結果相反
if(a[j]>a[j+1])}}
由於上面的氣泡排序不管一組資料再進行幾步之後是否已經有序,它都會正常進行,浪費資源,因此對於此段**我們只需要增加乙個標記,能夠判斷這段**後續已經有序了,就終結該演算法,就會省下很多資源,其實就是這個標記在進行一輪比較之後,要是交換這個標記就改變,沒交換這個標記就沒改變,沒改變證明已經有序,結束此次排序。
下面來看**:
int i,j;
boolean flag = ture;
for(i=0;iflag = false;
//要注意的是-i是因為最下面的i個數已經排好了沒必要再拍了
for(j=0;j//注意判斷條件,這個與我們想要的結果相反
if(a[j]>a[j+1])}}
改良 氣泡排序演算法
最近講第二個大課題 陣列。講到陣列,肯定不可避免的就要講到兩個排序演算法了,冒泡演算法首當其衝。整理了一下氣泡排序的內容,我跟學生說 要你們掌握兩個東西,乙個是演算法思想,乙個是核心 演算法思想如下 1.將相鄰兩個數比較,將小 大 的調到前頭。最後排序結果,從小到大 從大到小 每輪比較後,最大 小 ...
Java實現冒泡演算法
排序 是計算機內經常進行的一種操作,其目的是將一組 無序 的記錄序列調整為 有序 的記錄序列。分內部排序和外部排序,若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序。反之,若參加排序的記錄數量很大,整個序列的排序過程不可能在記憶體中完成,則稱此類排序問題為外部排序。內部排序的過程是乙...
Java實現氣泡排序演算法
一 基本思路 氣泡排序是一種簡單的交換類排序。其基本思路是,從頭開始掃瞄待排序的元素,在掃瞄過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。一般地,對n個元素進行氣...