Geo*_*iev 0 java sorting recursion
我正在尝试编写一个递归冒泡排序方法,但我得到了ArrayIndexOutOfBoundsException: 11.我看不出我做错了什么.
public static int[] recBubSort(int []arr, int n){
if(n > arr.length-1){
return arr;
}
if(arr[n] > arr[n+1]){
swap(arr,n,n+1);
}
return recBubSort(arr,n+1);
}
public static void swap(int arr[], int minPos, int index) {
//System.out.println("SelectionSort SWAP...");
int temp = arr[minPos];
arr[minPos] = arr[index];
arr[index] = temp;
}
Run Code Online (Sandbox Code Playgroud)
你检查过n它不大于最后一个允许的索引(这是length - 1,但是接下来if你要问的是arr[n+1].
假设您的阵列有5个项目.而你n是4.你检查了它并没有大于5-1.但是n+1是5,并且没有第5项.