C语言数组排序

冒泡排序:

    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,
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容