冒泡数组排序,为什么第一个可以运行,第二个就不可以了,郁闷

1.

package helloWorld;


public class test_4 {

public static void main(String[] args){

int[] arr={12,45,321,44,66,78,12};

for(int j=0;j<arr.length-1;j++){

for(int i=0;i<arr.length-1;i++){

if(arr[i]>arr[i+1]){

int t=arr[i];

arr[i]=arr[i+1];

arr[i+1]=t;

}

}

}

for(int i=0;i<arr.length;i++){

System.out.println(arr[i]);

}

}

}

2。

package helloWorld;


public class test_4 {

public static void main(String[] args){

int[] arr={12,45,321,44,66,78,12};

for(int j=0;j<arr.length-1;j++){

for(int i=arr.length-1;i>=0;i--){

if(arr[i]>arr[i-1]){

int t=arr[i];

arr[i]=arr[i-1];

arr[i-1]=t;

}

}

}

for(int i=0;i<arr.length;i++){

System.out.println(arr[i]);

}

}

}

晴天小文友
浏览 1358回答 1
1回答

米沙之国

第二个的冒泡中的第二层循环for(int i=arr.length-1;i>=0;i--),i>=0和arr[i-1]冲突,当i=0时会得到arr[-1]报错,应改为i>0;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java