冒泡算法

用冒泡算法对数组进行从小到大排序

思路

将相邻两个数进行比较,较大的放在角标较大的位置。

冒泡算法_第1张图片
第1次比较.png
冒泡算法_第2张图片
第2次比较.png
冒泡算法_第3张图片
第3次比较.png
冒泡算法_第4张图片
第4次比较.png
冒泡算法_第5张图片
第5次比较.png

黄色为本次比较的两个数,红色代表本次比较最大的书,下次循环不需要比较上一次最大的值。

#include
#include

main() {
    int a[10];
    printf("输入10个数\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &a[i]);
    }

    int temp;
    for (int y = 0; y < 9; y++)
    {
                //上一次循环最大值不需要比对
        for (int x = 0; x < 9 - y; x++)
        {
            if (a[x] > a[x + 1])
            {
                temp = a[x + 1];
                a[x + 1] = a[x];
                a[x] = temp;
            }
        }
    }

    printf("冒泡排序结果\n");
    for (int i = 0; i < 10; i++) {
        printf("%d", a[i]);
        printf("\n");
    }
    system("pause");
}
冒泡算法_第6张图片
运行结果.png

你可能感兴趣的:(冒泡算法)