当前位置:首页 > C语言
冒泡排序(一)
来源:靑龍一笑的博客  作者:靑龍一笑  发布时间:2022-01-03 20:42:00  点击量:300  评论:0

/*
 * 冒泡排序
 * 1、从第一个元素开始,对每一对相邻的两个元素进行比较
 * 2、如果前一个元素比后一个元素大,则交换这两个元素的位置
 * 3、以此类推,直到所有元素均排序完毕
 */
#include <stdio.h>
#define SIZE 10
int main() {
    /*
     * i, j, k 是 for 循环语句中的索引
     * temp 是用来交换两个元素的临时存储变量
     * arr[] 是要排序的数组
     */
    int i, j, k, temp, arr[SIZE];
    printf("请输入 10 个数:");
    for (i = 0; i < SIZE; i++) {
        scanf("%d", &arr[i]);
    }
    // 冒泡排序
    for (i = 0; i < SIZE - 1; i++) {
        printf("========== 第 %d 轮 ==========\n", i+1);
        /*
         * 从第 1 个元素开始,对相邻的两个元素进行比较
         * 当前一个元素比后一个元素大时,交换这两个元素的位置
         * 每一轮比较结束后,最大的元素被放置在最右边
         * 所以,每一轮的最后一位都不参与下一轮的比较
         */
        for (j = 0; j < SIZE - 1 - i; j++) {
            printf("i=%d, j=%d:", i, j);
            if (arr[j] > arr[j+1]) {
                // 交换两个元素的位置
                temp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = temp;
            }

            // 输出数组元素
            for (k = 0; k < SIZE; k++) {
                printf("%d ", arr[k]);
            }
            printf("\n");
        }
    }
    
    return 0;
}

    设置编译环境:

D:\Works> set PATH=D:\Visual C++ 6\VC98\Bin;D:\Visual C++ 6\Common\MSDev98\Bin
D:\Works> set INCLUDE=D:\Visual C++ 6\VC98\Include
D:\Works> set LIB=D:\Visual C++ 6\VC98\Lib

    编译 C 程序:

D:\Works> cl -GX bubbleSort.c

    运行:

D:\Works> bubbleSort.exe
请输入 10 个数: 3 9 4 7 8 0 2 6 1 5
========== 第 1 轮 ==========
i=0, j=0:3 9 4 7 8 0 2 6 1 5
i=0, j=1:3 4 9 7 8 0 2 6 1 5
i=0, j=2:3 4 7 9 8 0 2 6 1 5
i=0, j=3:3 4 7 8 9 0 2 6 1 5
i=0, j=4:3 4 7 8 0 9 2 6 1 5
i=0, j=5:3 4 7 8 0 2 9 6 1 5
i=0, j=6:3 4 7 8 0 2 6 9 1 5
i=0, j=7:3 4 7 8 0 2 6 1 9 5
i=0, j=8:3 4 7 8 0 2 6 1 5 9
========== 第 2 轮 ==========
i=1, j=0:3 4 7 8 0 2 6 1 5 9
i=1, j=1:3 4 7 8 0 2 6 1 5 9
i=1, j=2:3 4 7 8 0 2 6 1 5 9
i=1, j=3:3 4 7 0 8 2 6 1 5 9
i=1, j=4:3 4 7 0 2 8 6 1 5 9
i=1, j=5:3 4 7 0 2 6 8 1 5 9
i=1, j=6:3 4 7 0 2 6 1 8 5 9
i=1, j=7:3 4 7 0 2 6 1 5 8 9
========== 第 3 轮 ==========
i=2, j=0:3 4 7 0 2 6 1 5 8 9
i=2, j=1:3 4 7 0 2 6 1 5 8 9
i=2, j=2:3 4 0 7 2 6 1 5 8 9
i=2, j=3:3 4 0 2 7 6 1 5 8 9
i=2, j=4:3 4 0 2 6 7 1 5 8 9
i=2, j=5:3 4 0 2 6 1 7 5 8 9
i=2, j=6:3 4 0 2 6 1 5 7 8 9
========== 第 4 轮 ==========
i=3, j=0:3 4 0 2 6 1 5 7 8 9
i=3, j=1:3 0 4 2 6 1 5 7 8 9
i=3, j=2:3 0 2 4 6 1 5 7 8 9
i=3, j=3:3 0 2 4 6 1 5 7 8 9
i=3, j=4:3 0 2 4 1 6 5 7 8 9
i=3, j=5:3 0 2 4 1 5 6 7 8 9
========== 第 5 轮 ==========
i=4, j=0:0 3 2 4 1 5 6 7 8 9
i=4, j=1:0 2 3 4 1 5 6 7 8 9
i=4, j=2:0 2 3 4 1 5 6 7 8 9
i=4, j=3:0 2 3 1 4 5 6 7 8 9
i=4, j=4:0 2 3 1 4 5 6 7 8 9
========== 第 6 轮 ==========
i=5, j=0:0 2 3 1 4 5 6 7 8 9
i=5, j=1:0 2 3 1 4 5 6 7 8 9
i=5, j=2:0 2 1 3 4 5 6 7 8 9
i=5, j=3:0 2 1 3 4 5 6 7 8 9
========== 第 7 轮 ==========
i=6, j=0:0 2 1 3 4 5 6 7 8 9
i=6, j=1:0 1 2 3 4 5 6 7 8 9
i=6, j=2:0 1 2 3 4 5 6 7 8 9
========== 第 8 轮 ==========
i=7, j=0:0 1 2 3 4 5 6 7 8 9
i=7, j=1:0 1 2 3 4 5 6 7 8 9
========== 第 9 轮 ==========
i=8, j=0:0 1 2 3 4 5 6 7 8 9
版权所有 © 2005-2023 靑龍一笑的博客  Powered by C.S.Ricen
Copyright © 2005-2023 by www.ricensoftwares.com.cn  All Rights Reserved.

欢迎光临本站,这里是靑龍一笑的博客。

因资金匮乏,本站已迁到国外的免费空间,可能导致本站的访问速度较慢,由此给您带来的不便,敬请谅解。

您可以通过下方的“支持本站建设”链接,给本站提供资金支持。

Free Web Hosting