冒泡排序算法

普通排序算法

最簡單的排序算法(升序):
假設有n個數據
1. 比較前後兩個數a和b 如果 a > b 則交換a和b的位置
2. 重複比較 12 23 直到 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]);
        }
    }
}

冒泡排序和普通排序比較簡單易懂
發佈了143 篇原創文章 · 獲贊 18 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章