递归冒泡排序异常

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)

Rea*_*tic 5

你检查过n它不大于最后一个允许的索引(这是length - 1,但是接下来if你要问的是arr[n+1].

假设您的阵列有5个项目.而你n是4.你检查了它并没有大于5-1.但是n+1是5,并且没有第5项.