一、思路:
氣泡排序演算法原理:
1.比較相鄰的元素。如果第乙個數比第二個數大,就交換他們兩個。
2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
3.針對所有的元素重複以上的步驟,除了最後乙個。(因為最後乙個已經排好,是最大的數)
4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。(接著排第二大的數,一直下去)
如:使用氣泡排序:25 16 9 90 23
第一輪:如果某個數大於後面的數,那麼就交換;
第一次 16 25 9 90 23
第二次 16 9 25 90 23
…..最終: 16 9 25 23 90 最大的數就冒到了最後。
比較次數:4次
第二輪:得到第二大的數:9 16 23 25 90
到此,已經排好序,可以提前結束排序。
二、實現**:
#include using namespace std;
const int maxsize = 20;
// 氣泡排序:從小到大排序
template void bubblesort(t arr, int n)
}if(flag == 0) // 無交換,說明已經全部排好序,提前結束
break;
} // for
} // bubblesort
int main(int argc, const char * ar**)
測試結果:
氣泡排序 bubble sort
氣泡排序是最基本的排序演算法,常被做為內部排序的第乙個排序演算法進行講解。它的原理非常簡單,只是一 個兩層迴圈,每次將最大或最小的放到陣列最後。演算法如下 b為陣列的起始位置,e為陣列的結果位置 int bubble int data,int b,int e return n 這個函式返回兩個整數比...
氣泡排序(Bubble Sort)
無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。並不是它的名稱很好聽,而是說這個演算法的思路最簡單,最容易理解。因此,哪怕大家可能都已經學過氣泡排序了,我們還是從這個演算法開始我們的排序之旅。氣泡排序 bubble sort 一種交換排...
氣泡排序 Bubble Sort
維基百科 氣泡排序 演算法思想 不斷的交換相鄰的兩個反序元素,使最小元素 上浮 或使最大元素 下沉 每一趟 冒泡 都會確定乙個最大的元素或最小的元素,同選擇排序類似,演算法總共只需進行n 1趟。將乙個陣列豎著放,低位址在上面,高位址在下面,所謂 上浮 就是較小的元素不斷向低位址靠近,所謂 下沉 就是...