冒泡排序--java进阶day06

1.冒泡排序

https://kdocs.cn/l/ciMkwngvaWfz?linkname=150996835

我们会发现上图排序的样子非常像之前打印的倒三角,所以,冒泡排序也需要使用循环嵌套

2.代码实践

根据图片,我们知道5个数只要排4次

如果外循环是arr.length,就会循环5次,因此我们要减1


.

内循环是控制两个数之间进行排序,循环次数我们暂时不管,先写代码逻辑

系统说第11行造成了索引越界异常,我们对第11行逐个分析

如图,我们将内循环的所有元素罗列出来

发现在j=4时,有arr[4]和arr[5],但是数组一共5个数,最大的索引都是4,因此问题出自索引5

解决方法很简单,我们只要让内循环的循环次数-1,j就不会等于4,恰好元素只要比较到arr[4]


.

按照这种写法,内循环每次都循环4次,但之前我们分析时,循环次数是不断减少的,所以还需要优化

我们把目光放在内循环的循环条件这块,如果每完成一次循环都会对应的-0、-1、-2、-3,那么循环的次数也就变成4、3、2、1,完美符合条件




i正好就是这样变化的,所以我们只需要再减i即可

posted @ 2025-03-14 17:33  直実  阅读(10)  评论(0)    收藏  举报