普通排序算法
最簡單的排序算法(升序):
假設有n個數據
1. 比較前後兩個數a和b 如果 a > b 則交換a和b的位置
2. 重複比較 1和2 2和3 直到 n-1和n爲止
3. 循環重複上訴流程n次
代碼實現
void sort(int *a, int size) {
for (int i = 0; i < size; size++) {
for (int j = 0; j < size; j++) {
if (a[i] > a[j])
swap(&a[i], &a[j]);
}
}
}
冒泡排序
冒泡排序在上述排序的基礎上 減少排序步驟
void sort(int *a, int size) {
for (int i = 0; i < size; size++) {
// 內層循環 也就是前面所說的比較相鄰兩個數時
// 不需要比較已經排序好的數據 (下標爲i 到 size的數據)
for (int j = 0; j < i; j++) {
if (a[i] > a[j])
swap(&a[i], &a[j]);
}
}
}
冒泡排序和普通排序比較簡單易懂