zoukankan      html  css  js  c++  java
  • C语言中的冒泡排序法

    例题:从终端输入9个数字,然后将它们按照从小到大的顺序输出.

    编写程序:

    #include<stdio.h>

    main()

    {

    int a[10];                                                                          \\定义数组a[0]到a[9]为整型

    int i,j,t;

    printf("input 10 numbers :\n");

    for(i=0;i<10;i++)scanf("%d",&a[i]);                                    \\for循环来实现对数组a的赋值

    printf("\n");

    for(j=0;j<9;j++)                                                               \\开始冒泡排序

    for(i=0;i<9-j;i++)                                                            

    if(a[i]>a[i+1])

    {t=a[i];

    a[i]=a[i+1];

    a[i+1]=t;}                                                                         \\冒泡排序结束

    printf("the sorted numbers :\n");

    for(i=0;i<10;i++)printf("%d",a[i]);                                      \\这里的for很容易理解了  按照a[0]到a[9]的顺序输出.

    printf("\n");

    return 0;

    }

    程序分析:当执行外循环第1次循环时,j=0,然后执行第1次内循环.此时i=0,在if语句中将a[i]和a[i+1]比较,就是将a[0]和a[1]比较.执行第2次内循环时,i=1,a[i]和a[i+1]比较....

                执行最后一次内循环时,i=8,a[i]和a[i+1]比较,就是a[8]和a[9]比较.此时最大的数已经是a[9] 所以比较时不需要在动a[9]的位置.第一次外循环结束

                 当执行第2次外循环时,j=1,开始循环.内循环的继续条件是i<9-j,由于j=1,因此相当于0<8,执行内循环,直到i=7的时候,7<8,就执行了8次内循环,比第一次少了一次,

                 自然每次的最后一位就不用在进行比较,以此类推.

  • 相关阅读:
    多环境
    Date的after()与before()方法的使用
    Centos6.8 yum报错及修复YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid
    JSON格式数据解析看这一个就足够了
    widnows下lua开发环境luadist LuaRocks搭建
    树的相关定义及遍历
    win10 启动redis服务的bat
    PageHelper分页失效的可能原因之一
    el-table多选表头复选框不对齐
    好用的软件推荐
  • 原文地址:https://www.cnblogs.com/shujun/p/3102142.html
Copyright © 2011-2022 走看看