C語言實現氣泡排序程式碼
阿新 • • 發佈:2021-07-30
前言
氣泡排序法:通過重複的遍歷元素然後比較相鄰的兩個元素大小交換位置實現的。
聽說是一種比較簡單的排序演算法。
名字的由來聽說是這樣的:假設最小的值是陣列最後的元素,然後通過該排序,每重複遍歷一次該最小的元素會往前移動一個位置。
然後有點像有個泡泡在瓶子水底一直往上浮起來...
所以就冒泡唄。
至於該排序的演算法複雜度。
嗯,請查其他資料吧。
本次採用C語言的方式實現。
程式碼實現
#include <stdio.h> // 列印陣列 void print(int *buf, int size) { for (int i = 0; i < size; ++i) { printf("%d ", buf[i]); } printf("\n"); } // 排序陣列(從小到大) void sort(int *buf, int size) { for (int i = 0; i < size - 1; ++i) { for (int j = 0; j < size - 1 - i; ++j) { if (buf[j] > buf[j + 1]) // 1.[ > 從小到大 ] 2.[ < 從大到小 ] { int tmp = buf[j]; buf[j] = buf[j + 1]; buf[j + 1] = tmp; } } } } // 主函式 int main(int argc, char **argv) { int buf[] = {33, 2, 3, 3, 2, 1, 1, 2, 3, 3, 1, 1, 1, 1, 1, 1}; // 源陣列 int size = sizeof(buf) / sizeof(int); // 陣列大小 print(buf, size); // 列印氣泡排序前陣列 sort(buf, size); // 執行氣泡排序 print(buf, size); // 列印氣泡排序後陣列 return 0; }
除錯結果
結語
嗯。
好像是簡單。
---End