potacharles
2015-08-26 09:28
为什么不是N-1?
for(i=N-2;i>=0;i--) { for(j=0;j<=i;j++) {
N=10, N-2=8
i从8开始计算,因为下标从0开始,所以8对应的是倒数第二个元素。
if(score[j]<score[j+1])
当i=N-2=8时,j能取的最后一个值为8,进行的比较是数组中最后两个元素的比较。因为这样的比较是从数组一开始就进行的,所以数组中最小的元素此时已经通过排序位于数组最后的位置,所以下一次进行比较时,i的值减小1,也就是不再与此时数组中最后一个元素(最小值)进行比较。
C语言入门
926021 学习 · 20793 问题
相似问题