解决Exception in thread “main” java.lang.StackOverflowError
问题描述:在写选择排序算法时,出现如图所示问题:
问题分析:我的代码大致结构如下,其中我用到了递归
public static void quickSort(int[] arr,int low,int high){
//此处省略代码具体内容,当快速排序算法实现一部分之后,马上就要调用这个方法quickSort
/*
......
*/
//递归调用如下
quickSort(arr, low, i - 1);
quickSort(arr, i + 1, high);
}
然而递归调用的时候出现了溢出的错误,只需要在递归时候加上约束条件即可,修改后的代码如下
public static void quickSort(int[] arr,int low,int high){
/*
......
*/
//递归调用如下
if(i !=0) {
quickSort(arr, low, i - 1);
quickSort(arr, i + 1, high);
}
}
其中i为代码中省略的关于快速排序的从左往右的扫描指针。