大型数组会导致StackOverflowError

问题描述

因此,我编写了一个用于quicksort的程序,当我输入较大的数组大小时,它会给我 quickSort_typeA 一个StackOverflowError,但是,对于10000这样的小尺寸,它完全可以正常工作。下面是我的代码

public static int partition_a(int[] a,int left,int right) 
{
        int pivot = a[left];
        while(left<=right) {
            while(a[left] < pivot)
                left++;
            while(a[right] > pivot)
                right--;
            if(left<=right) {
                int tmp = a[left];
                a[left] = a[right];
                a[right] = tmp;
                left++;
                right--;
            }
        }
        return left;
    }
    public static void quickSort_typeA(int[] a,int i,int j) {
       int idx = partition_a(a,i,j);
       if(i < idx-1) {
           quickSort_typeA(a,idx-1);
        }
       if(j > idx) {
           quickSort_typeA(a,idx,j);
        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)