我正在尝试使用Java中的冒泡排序算法对数组进行排序。但是当我运行代码时,会发生ArrayIndexOutofBoundException
。这是我的代码
package bubblesort;
public class BubbleSort {
public int[] sort(int [] arr){
int temp=0;
for(int i=0 ; i<arr.length ; i++)
for(int j=0 ; j<arr.length-i ; j++){
if(arr[j] > arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}}
return arr;
}
public static void main(String[] args) {
BubbleSort ob = new BubbleSort();
int[]nums={2,5,1,55};
System.out.println("Sorted list is:");
int[]sorted =ob.sort(nums);
for(int i=0 ; i<nums.length;i++)
System.out.println(nums[i]);
}
}
答案 0 :(得分:1)
由于你的内部循环引用arr[j+1]
,它应该更快地终止一步,而不是迭代到最后一个元素:
for(int i = 0 ; i < arr.length; i++)
for(int j = 0 ; j < arr.length - i - 1; j++) {
// Here ------------------------^