無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。
氣泡排序(bubble sort)一種交換排序,它的基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。
這裡實現最簡單最容易想到的一種
//輔助函式:交換兩個變數
void swap(int*a,int*p)
//氣泡排序
//兩兩對比,把最大的一直挪到最後面
//非常不怎樣的乙個演算法,但確是大部分高校教的第乙個演算法
void bubblesort(int* arr,int
len)}}
}
排序演算法之(1) 氣泡排序
氣泡排序總共進行n 1趟,每一趟掃瞄總是通過兩兩比較把大的往後放。所以第一趟即把最大數放在最後面,接著第二趟把第二大數放在倒數第二的位置 到n 1趟完畢。此時僅僅有乙個數未排序。這個數就是最小元素。不再須要掃瞄,此時完畢對全部元素的排序。include using namespace std voi...
1 演算法之氣泡排序
氣泡排序是一種比較容易接收的排序,它穩定而且易於實現,其主要思想如下 給定乙個隨機序列array 這裡我們為了突出演算法認為array內的元素是int型別 再給定兩個下標i,j分別用來指向兩個要比較和交換的物件,設i的初始值為0 i的含義代表著排序的輪數 讓j的初始值為1 即每次讓j從第二個位置開始...
排序演算法 1 氣泡排序
氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。冒...