堆排序,当整数数目超过10000个时会报堆栈溢出错误

最近接触了个OAF的项目,开始学Java,在测试堆排序时出现个问题,就是:在Java中使用堆排序,当整数数目超过10000个时会报堆栈溢出错误,在我的机器上(>8970)就会出错,
哪位高手能否帮忙看看问题在哪里?

代码如下:

package com.package2;
/**
* Function: 测试堆排序
*/

import java.util.*;
public class SortMethod {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                //QuickSort st=new QuickSort(); //递归时: 3千万,6s; 1亿,20s; 非递归时: 3千万,11s; 1亿,36s
                //MergeSort st=new MergeSort(); //非递归时: 3千万,5s; 1亿,15s; 递归时: 3千万,7s; 1亿,26s;
                
                HeapSort st = new HeapSort();
                TestSort ts=new TestSort();
                
                //int size=11; boolean debug=false;
                int size=8970;        boolean debug=true; //debug=true时仅打印排序开始与结束时间,不打印排序过程
                int arr[]=new int[size];
                for(int i=0;i<size;i++) arr[i]=(int)(Math.random()*10000); //生成测试数据
                ts.process(debug, st, arr);
        }
}

class TestSort{
        public void process(boolean debug, Sort sort, int[] arr){
                sort.setArr(arr);
                sort.print(debug);
                sort.sort(debug);
                sort.print(debug);
        }
}

interface Sort{
        public void setArr(int[] arr);
        public void print(boolean debug);
        public void printSystime(boo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值