问题遇到的现象和发生背景
想请大佬们看下我写的这个冒泡排序哪有问题
问题相关代码,请勿粘贴截图
public class Bubble_Sort {
public static void main(String[] args) {
int[] arr = {12, 34, 45 ,56 ,14} ;
for (int i = 0; i < (arr.length -1); i++) {
for (int i1 = 0; i1 < (arr.length - i); i1++) {
if(arr[i1] > arr[i1 + 1]){
int temp = arr[i1];
arr[i1] = arr[i1 + 1];
arr[i1 + 1] = temp ;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
运行结果及报错内容
D:\Java\JDK\bin\java.exe "-javaagent:D:\java\IDEA\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar=4325:D:\java\IDEA\IntelliJ IDEA 2021.2.1\bin" -Dfile.encoding=UTF-8 -classpath D:\java\java_code\out\production\arr study.Bubble_Sort
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at study.Bubble_Sort.main(Bubble_Sort.java:9)
我的解答思路和尝试过的方法
在第一个for循环中 , 改为for(int i = 1 ; i <= (arr.lengthh - 1) ; i++) 就可运行
我想要达到的结果
我感觉这两种形式是一样的,但不知道问什么第一个会报错