题解 | #排序#

排序

https://www.nowcoder.com/practice/508f66c6c93d4191ab25151066cb50ef

这里我分享简单的冒泡排序,原理比较简单。

假设我们要求从小到大排

- 我们每次将左右两个数比较大小, 大数字往后放(更加形象一点就是,重的石头往下掉,轻的泡沫往上升)

经过这样的操作,我们每一轮循环都将当前这一轮的最大值放在了后面

故写出此代码,不是很精简,但是为了理解已经足够清楚。

#include <stdio.h>

int main() {
    int n;
    int nums[105];
    while (scanf("%d", &n) != EOF) {
        for (int i = 0; i < n; i++) {
            scanf("%d", &nums[i]);
        }
        // 冒泡排序
        for (int i = 0; i < n; i++) {
            for (int j = 1; j < n - i; j++) {
                if (nums[j - 1] > nums[j]) {
                    int t = nums[j - 1];
                    nums[j - 1] = nums[j];
                    nums[j] = t;
                }
            }
        }
        for (int i = 0; i < n; i++) {
            printf("%d ", nums[i]);
        }
        
    }
    return 0;
}

全部评论

相关推荐

爱读书的放鸽子能手很...:刷个两端实习,冲春招,流水线什么时候不能去
我的秋招日记
点赞 评论 收藏
分享
未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务