萌新求助,有注释求大佬帮忙看看问题

P2141 [NOIP2014 普及组] 珠心算测验

@[AOY616](/user/788016) 排序的代码不对,改完了可以AC
by yutong_Seafloor @ 2023-08-12 08:03:36


@[yutong_Seafloor](/user/773747) 这个比较抽象,我稍微细说一下: 先说错误 1. 交换的对象应该是 $a[i]$ 和 $a[j]$ ,如果是和 $a[j]$ 和 $a[j+1]$ 换的话 ~~好像其实逻辑上没问题~~ 会导致有一部分换不完全 2. 这里如果采用上面的方式,那么循环次数应该进行更改,由于是直接使用到的 $j$ 和 $i$ ,j的起步数值是i+1,就是i后边的一个数,因为在i之前的数字一定有序且小于当前的 a[i],终点应该是n,作为对比以后所有的数据 ```cpp for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { if(a[i]>a[j]) { int temp=a[i]; a[i]=a[j]; a[j]=temp; } } } ```
by yutong_Seafloor @ 2023-08-12 08:18:19


|