在資料處理的時候排序是很重要的一個需要處理的問題
不論是什麼資料
都會有排序的問題
但是提到排序就會有效率的問題
先來談談排序的種類
氣泡排序法 (bubble sort)
插入排序法(Insertion sort)
合併排序法(Merge sort)
選擇排序法(Selection sort)
快速排序法(Quick sort)
堆排序法
Example
#include <stdio.h>
void bubble_sort(int arr[], int len)
{
int i, j, temp;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
printf("%d > %d\n", arr[j], arr[j + 1]);
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
else
{
printf("%d <= %d\n", arr[j], arr[j + 1]);
}
}
}
}
int main()
{
int arr[] = {22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 37, 5, 64, 35, 9, 70};
int len = (int)sizeof(arr) / sizeof(*arr);
bubble_sort(arr, len);
return 0;
}
在上述範例中可以看到
有一個巢狀迴圈
每跑完一次迴圈
就可以產出一個最大的數
依序將陣列中的數字一個一個由大到小依序排出
就像是一個一個氣泡會慢慢浮出
所以稱之為氣泡排序法