我正在尝试用Java编写递归冒泡排序,但是我遇到了一个索引越界异常。我做错了什么,为什么会出现这个错误?以下是我的代码:
public static <T extends Comparable< ? super T>>
void sort(T [] a){
T tmp;
for(int i=0;i<a.length;i++){
if(a[i].compareTo(a[i+1])>0){
tmp = a[i];
a[i]=a[i+1];
a[i+1]=tmp;
sort(a);
}
System.out.println("i:"+i+" "+a[i]);
}
此外,尽管它对数组进行了排序并在最后出现错误,但它仍会打印所有步骤,如何使其打印最终排序后的数组? 可能是一个简单的答案,但我的大脑现在已经崩溃了,不能正常思考。 提前致谢。
sort()
方法时,在调用它的位置上调用Arrays.toString()
,并将其作为sort()
方法返回的值。不要在sort()
方法内部调用Arrays.toString()
。 - Óscar López