演算法之氣泡排序 C語言

2021-06-14 14:42:33 字數 1058 閱讀 8923

氣泡排序(從小到大)

演算法思想:遍歷一n個資料的陣列,比較相鄰資料的大小,把小值放前面,大值放後面,比較數次後,該組資料由小到大排列。假設最小值在最後乙個位置,則須經過n-1次才能把最小值交換到第一位,即比較次數最多為n-1次。

對於內迴圈的迴圈不變式

初始化:第一次遍歷前,in_index之前沒有值,顯然滿足小值在前,大值在後;

保持:第k次遍歷前,in_index = k,在k之前的值均保持小值在前,大值在後;

終止:遍歷n-1次後,比較了所有資料,迴圈結束,

對於外迴圈的迴圈不變式

初始化:第一次遍歷前,out_index之前沒有對資料進行任何操作,即排序後的資料為空,顯然滿足相鄰之間小值在前,大值在後;

保持:第k次遍歷前,out_index = k,由於內迴圈的迴圈不變式,可以證明經過k-1次的操作,資料滿足相鄰之間小值在前,大值在後;

終止:遍歷n-1次,可以保證每一位資料均與另外n-1個資料進行了比較並進行了交換,迴圈結束。

最壞時間複雜度:o(n2)

**如下:

#include #define maxsize 10

void print(int array);

void bubble_sort(int array);

/** * 列印程式

*/void print(int array)

printf("\n");

}/**

* 氣泡排序,從小到大排序

*/void bubble_sort(int array)

in_index --;

}out_index++;

}}/**

* 主程式

*/int main()

;//待排序的陣列

printf("oringin array: ");

print(array);

bubble_sort(array);

printf("sort array: ");

print(array);

return 0;

}

C語言 排序演算法之氣泡排序

氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。維基百科 氣泡排...

排序演算法之氣泡排序(C語言)

我們採用傳統的三段式思維來學習 是什麼?為什麼?怎麼做?氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序 如從大到小 首字母從z到a 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就...

C語言排序演算法之氣泡排序

氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序 如從大到小 首字母從z到a 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個演算法的名字由來是因為越小...