微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大型数组会导致StackOverflowError

如何解决大型数组会导致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 举报,一经查实,本站将立刻删除。