问答详情
源自:6-12 综合练习

降序排列的时候为什么是 N-2?

为什么不是N-1?

提问者:potacharles 2015-08-26 09:28

个回答

  • Zh012
    2015-08-26 11:34:43
    已采纳

    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,也就是不再与此时数组中最后一个元素(最小值)进行比较。