C语言冒泡排序算法

4,358次阅读
一条评论

共计 687 个字符,预计需要花费 2 分钟才能阅读完成。

{message type=”info”} 用冒泡排序法对任意输入的 10 个数按照从小到大的顺序进行排序。{/message}

实现过程:

(1) 通过两个 for 循环实现冒泡排序的全过程,外层 for 循环决定冒泡排序的趟数,内层 for 循环决定每趟所进行两两比较的次数。

(2) 程序代码如下:

#include <stdio.h>
int main()
{int i,j,t,a[11];    // 定义变量及数组为基本整型
    printf(" 请输入 10 个数:\n");
    for(i=1;i<11;i++)
        scanf("%d",&a[i]);    // 从键盘中输入 10 个数
    for(i=1;i<10;i++)    // 变量 i 代表比较的趟数
        for(j=1;j<11-i;j++)    // 变最 j 代表每趟两两比较的次数
            if(a[j]>a[j+1])
            {t=a[j];    // 产利用中间变童实现两值互换
                a[j]=a[j+1];
                a[j+1]=t;
            }
            printf(" 排序后的顺序是:\n");
            for(i=1;i<=10;i++)
                printf("%5d",a[i]);    // 将胃泡排序后的顺序输出
        printf("\n");
    return 0;
}

运行结果如下:

 请输入 10 个数:66 32 23 45 25 5 15 69 46 37
排序后的顺序是:5   15   23   25   32   37   45   46   66   69

技术要点:

本实例要求用冒泡法对 10 个数由小到大进行排序,冒泡法的基本思路是,如果要对 n 个数进行冒泡排序,那么要进行 n-1 趟比较,在第 1 趟比较中要进行 n-j 次两两比较,在第 j 趟比较中要进行 n-j 次两两比较。从这个基本思路中就会发现,趟数决定了两两比较的次数,这样就很容易将两个 for 循环联系起来了。

正文完
post-qrcode
 0
yu
版权声明:本站原创文章,由 yu 于2021-07-06发表,共计687字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
验证码
小懒 博主
2021-07-06 23:03:06 回复

牛啊牛啊!!:@(赞一个)