5 4 月 2026, 周日

冒泡排序:

    int arr[] = {2, 54, 5, 76, 8, 9, 66, 67, 87, 8, 534};
    const int arr_len = sizeof(arr) / sizeof(arr[0]);

    // 冒泡排序
    for (int i = 0; i < arr_len - 1; i++) {
        for (int j = 0; j < arr_len - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                const int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
    for (int i = 0; i < arr_len; i++) printf("[%d]=>%d,", i, arr[i]);
    // [0]=>534,[1]=>87,[2]=>76,[3]=>67,[4]=>66,[5]=>54,[6]=>9,[7]=>8,[8]=>8,[9]=>5,[10]=>2,


    // 冒泡排序[优化版]
    for (int i = 0; i < arr_len - 1; i++) {
        for (int j = 0; j < arr_len - 1 - i; j++) {
            if (arr[j] < arr[j + 1]) {
                const int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
    for (int i = 0; i < arr_len; i++) printf("[%d]=>%d,", i, arr[i]);
    // [0]=>534,[1]=>87,[2]=>76,[3]=>67,[4]=>66,[5]=>54,[6]=>9,[7]=>8,[8]=>8,[9]=>5,[10]=>2,

选择排序:

    //选择排序
    for (int i = 0; i < arr_len - 1; i++) {
        int max_index = i;
        for (int j = i + 1; j < arr_len; j++) {
            if (arr[j] > arr[max_index]) {
                max_index = j;
            }
        }
        if (max_index != i) {
            const int tmp = arr[i];
            arr[i] = arr[max_index];
            arr[max_index] = tmp;
        }
    }
    for (int i = 0; i < arr_len; i++) printf("[%d]=>%d,", i, arr[i]);
    // [0]=>534,[1]=>87,[2]=>76,[3]=>67,[4]=>66,[5]=>54,[6]=>9,[7]=>8,[8]=>8,[9]=>5,[10]=>2,
Avatar photo

sion932