关于c++冒泡排序!

想知道,冒泡排序中

int i, j;
        for (i = 0; i < len - 1; i++)
                for (j = 0; j < len - 1 - i; j++)
                        if (arr[j] > arr[j + 1])

这个小于len-1和小于len都可以进行排序,有什么区别呢?为什么oj前一种不给过???

小于len的情况。
当i=len-1时,内循环是不满足条件的,不会执行。

img


输出每一遍冒泡后的结果,我们发现最后一次冒泡与倒数第二次冒泡的结果都是一样的,也就是说最后一次冒泡是多余的。经过多次尝试,我们坚持认为是oj的评判系统问题。个人觉得两种写法都可以。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632