我试图解决这个插入排序问题(不是确切的插入排序)并编写了以下代码:
import java.util.*;
public class Solution {
static void insertionSort(int[] ar,int n) {
int key=ar[n];
int temp;
int j=1;
for(int i=0;i<ar.length;i++){
j++;
}
for(int i=j-1;i>=0;i--){
temp=ar[i];
if(temp>key)
{
ar[i+1]=temp;
printArray(ar);
}
else{
ar[i+1]=key;
printArray(ar);
}
}
}
/* Tail starts here */
static void printArray(int[] ar) {
for(int n: ar){
System.out.print(n+" ");
}
System.out.println("");
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] ar = new int[n];
for(int i=0;i<n;i++){
ar[i]=in.nextInt();
}
insertionSort(ar,n);
}
}
但是我收到了一个数组越界异常的错误,我不知道哪里出了问题。错误消息发布在下面。我应该如何解决这个问题?
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 5 在 Solution.insertionSort(Solution.java:9) 在 Solution.main(Solution.java:49)