开发者社区> 问答> 正文

冒泡排序法是如何排序的???

C语言中编程中的冒泡排序法,最好给一个例子~~~

展开
收起
知与谁同 2018-07-15 19:51:50 1299 0
4 条回答
写回答
取消 提交回答
  • 冒泡就是大的数,比较之后放到最前面,一次类推
    2019-07-17 22:49:46
    赞同 展开评论 打赏
  • 用两层循环,比较两个数大小,按要求,大数或者小数在前排序,注意二层循环中,J=i
    2019-07-17 22:49:46
    赞同 展开评论 打赏
  • 比如有一组数为12,23,1,4,2,6。需要使用冒泡排序方法使这组数从小到大排列。首先12和23比较,12<23,则位置不变;接着23和1比较,因为23>1,所以交换23和1的位置,这组数这时是12 1 23 4 2 6;然后比较23和4,因为23>4,所以交换23和4,这组数变为12 1 4 23 2 6;然后比较23和2,23>2,再交换,变为12 1 4 2 23 6;然后比较23和6,23>6,再交换,最后为12 1 4 2 6 23。这就叫经过了一趟排序,即相邻两数比较,大的放在后面,经过一趟排序后,最大的数就冒泡到最后面了。然后再对前n-1个数进行第二趟排序,排序后第二大的数就放在了第n-1个位置;最后经过n-1趟排序后整个数组就有序了。
    2019-07-17 22:49:46
    赞同 展开评论 打赏
  • 其实很简单,就是一个一个进行对比如果a<b/a>b就把两个变量进行交换,使得最大/最小的排在前面。
    2 4 3 5 1 五个数
    2<4 交换成为 42351
    2<3 成为 43251
    2<5 成为 43521
    2>1 不交换 43521
    然后最小的1就一定会在最后
    然后比较前4个数,4>3,3<5(交换),3>2;
    成为45321,
    前3个数4<5(交换),4>3
    就成为了54321
    这是一个巧合的例子,程序应该还要比较前两个数
    5>4
    最后成为54321。
    以下是样例程序。

    #include<stdio.h>
    int main()
    {
    int a[5]={2,4,3,5,1};
    int i,j,t; //i,j是计数器,t用作交换
    for(i=0;i<5;i++)
    {
    for(j=0;j<5-i-1;j++)
    {
    if(a[j]<a[j+1]) //如果后面的数字大于前面的数字
    {
    t=a[j];
    a[j]=a[j+1];
    a[j+1]=t; //就把两个数交换
    }
    }
    }
    printf("%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]);
    return 0; //程序正常结束
    }

    你懂了么。
    2019-07-17 22:49:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载