#include
#include
#include
#pragma warning(disable:4996);
void bubble_sort(int
array, int num) //傳入陣列元素
}int main() ;//定義乙個int型陣列
int i ;
bubble_sort(array, 7);//呼叫氣泡排序
for (i=0; i <= 6; i++)//按陣列下標輸出排序好的有序序列
printf("[%d]", array[i]);
system("pause");
return
0;}
array
1..n of integer
var i,j:integer;
begin
for i=1
to n-1
dofor j=n to i+1
doif a[j]1] then swap (a[j],a[j-1])
end
分析時間複雜度
最壞的情況下:t(n)=o(n^2)
假設上面那個陣列是中的元素代表這是7個學生參加的社團數量。
現在要對他們進行排序計算機不知道他們的大小。
這裡氣泡排序演算法就按剛開始的順序對他們進行兩兩比較。
將陣列第乙個元素和第二個元素進行比較,在將比較完排好序的第二個元素和第三個進行比較,直到和最後乙個元素進行比較。
也就是相當於讓排在第一位的學生和第二位學生比較一下參加社團的數量。
然後依次比較這樣比較完後可以保證第乙個同學所參加的社團數量最少。
然後第二次排序就可以直接從第二個學生開始比較依次類推,最多進行n-1輪比較。
排序演算法分析 氣泡排序
假設有n個元素,現在要把這些元素按照從小到大的順序進行排序,那麼演算法步驟如下,從第0個元素開始,比較相鄰的兩個元素,第0個和第1個,第1個和第2個,第n 2個和第n 1個,比較範圍是 0,n 1 所有元素都參與比較 如果左邊的比右邊的大,就交換他們的位置,一直比較到最後乙個元素。這樣經過第一輪交換...
氣泡排序演算法分析
氣泡排序的基本思想 對於待排序數列,依次比較相鄰元素,若順序相反,則交換位置,重複此步驟直至完成排序.以 5,4,3,2,1 來演示整個排序過程 原始序列 5,4,3,2,1 第一趟排序 4,5,3,2,1 4,3,5,2,1 4,3,2,5,1 4,3,2,1,5 第二趟排序 3,4,2,1,5 ...
氣泡排序的演算法分析與改進
交換排序的基本思想是 兩兩比較待排序記錄的關鍵字,發現兩個記錄的次序相反時即進行交換,直到沒有反序的記錄為止。應用交換排序基本思想的主要排序方法有 氣泡排序和快速排序。氣泡排序 1 排序方法 將被排序的記錄陣列r 1.n 垂直排列,每個記錄r i 看作是重量為r i key的氣泡。根據輕氣泡不能在重...