美文网首页
算法-冒泡排序

算法-冒泡排序

作者: 逍然 | 来源:发表于2016-04-13 16:52 被阅读36次

    冒泡排序可谓是从入门编程世界时接触的,工作这几年,基本没用过冒泡排序,不过冒泡排序重在其思想:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。


    代码如下:

    int a[100],t,m;       

     //随意输入6个数        

    printf("请随意输入六个数字:\n");        

    for (int i=0; i<6; i++) {            

    scanf("%d",&a[i]);       

     }      

     //每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。       

     //注意这里数组中有6个元素,只需要比较5次就够了前五个数都进行了比对,最后一个就不需要比对了        for (int i=0; i<6-1; i++) {           

     //外循环没循环一次,内循环就少循环i+1次            

    for (int j=0;j<6-1-i; j++) {                

    //由大到小排列,把最小的放后面                

    if (a[j]<a[j+1]) {//由大到小排列,把最小的放后面

    m = a[j];

    a[j] = a[j+1];

    a[j+1] = m;

    }

    }

    }

    for (int i=0; i<6; i++) {

    printf("%d ",a[i]);

    }

    printf("\n");

    //由大到小排列结果:87 76 65 54 45 34

    printf("由小到大排列结果:");

    for (int i=0; i<6-1; i++) {

    //外循环每比对一次,内循环次数就少i+1次,因为有小到大排列

    for (int j=0;j<6-1-i; j++) {

    //由小到大排列,把最大的放后面

    if (a[j]>a[j+1]) {

    m = a[j];

    a[j] = a[j+1];

    a[j+1] = m;

    }

    }

    }

    for (int i=0; i<6; i++) {

    printf("%d ",a[i]);

    }

    printf("\n");

    //由小到大排列结果:34 45 54 65 76 87

    欢迎大家指教、交流。

    相关文章

      网友评论

          本文标题:算法-冒泡排序

          本文链接:https://www.haomeiwen.com/subject/bwzwlttx.html