damywin 2020-03-10 22:19 采纳率: 100%
浏览 2660

用冒泡法对10个数排序(由小到大)

想了很久,还是搞不明白外层内层循环为什么是j在外头i在里头??
代码如下:
#include
int main()
{
int i,j,t;
int a[10];
printf("input 10 number:\n");

for(i=0;i<10;i++){
    scanf("%d",&a[i]);  
}
for(j=0;j<9;j++){   //限制多少趟比较,n-1
    for(i=0;i<9-j;i++){   //限制某趟要进行两两比较的次数,n-j
        if(a[i]>a[i+1]){
            t=a[i];a[i]=a[i+1];a[i+1]=t;
        }
    }
    printf("the number is:\n");
    for(i=0;i<10;i++){
        printf("%d",a[i]);
    }
    printf("\n");
}
}

--------
越想越混乱,以及n-1是9,那n就是10,为什么到了第三个循环里头还是9,不是n-j吗??小白刚学不太理解这些,虽然查了很多类似的题目,还是看不懂,烦请诸位解答一二,我要傻掉了,谢谢!
  • 写回答

2条回答 默认 最新

  • ok201211 2020-03-11 09:26
    关注

    冒泡排序的原理就是比较相邻两个数大小大数往右走,每一趟右边的数都会变成最大的,循环多次后大到排序的目的

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度