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

来源:6-12 综合练习

potacharles

2015-08-26 09:28

为什么不是N-1?

写回答 关注

1回答

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

    potach...

    非常感谢!

    2015-08-27 02:08:38

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

924613 学习 · 20763 问题

查看课程

相似问题