演算法原理:氣泡排序是經過n-1趟子排序完成的,第 i 趟子排序從第1個數至第 n-i+1 個數,若第 i 個數比第 i+1 個數大,則交換這兩個數,實際上這樣經過 i 次子排序就使得 第1個數至第 n-i +1個數之間最大的數交換到了n-i+1 的位置上了。實際上氣泡排序時可以優化的,那就是當第 i 次子排序並沒有發生元素的交換時,就說明陣列已經排好序了,以後的子排序就不用做了。
演算法**:
#include usingnamespace
std;
void swap(int &x,int &y)
void bubble_sort(int *arr,intn)
}if(flag) //
陣列已經排好序沒必要在繼續進行其他子排序了
break
; } }
intmain()
; bubble_sort(arr,8);
for(int i = 0 ; i < 8 ; ++i)
cout
}
小結:氣泡排序演算法的時間複雜度是o(n^2),同時氣泡排序也是穩定的,並且屬於原地排序,排序的效率取決於逆序對的多少。採用一點小優化也加速了氣泡排序。
氣泡排序java實現
基本思想 將待排序的n個元素垂直排成一列,依次比較上下相鄰的兩個元素,如果上面的數大於下面的,則兩者交換,第一趟氣泡排序的結果使得關鍵字最大的記錄被放在最後乙個位置上,然後第二趟起泡排序對前n 1個記錄進行同樣操作,結果是關鍵字次大的記錄被安放在第n 1個位置上,以此類推共進行n 1趟排序。特點 穩...
java實現氣泡排序
前面實現了快速排序演算法,其實這個算是難點的,如果是無序打亂的,用快速排序比較好。氣泡排序是從我們剛接觸程式設計到找工作面試經常能遇見到的,雖然它的效率並不高,但是很重要,不知道你忘記怎麼實現了沒有?首先看一下氣泡排序的例項圖 氣泡排序的過程很簡單,就是將第乙個記錄的關鍵字和第二個記錄的關鍵字進行比...
java實現氣泡排序
昨晚又開始研究八大排序演算法了,上一次還是過年的時候,這麼久了不用,又忘了,以此記錄。氣泡排序 就是每一次冒泡都把最大的放在最右邊 或者把最小的放在最右邊 package suanfa public class bubblesort if issort break 完成後直接跳出for i的迴圈 p...