标题: 如题:快速排序时,被排序的数组个数为1000时没问题,但是个数为9999甚至更多时报错? [打印本页] 作者: 徐青松 时间: 2014-2-19 13:30 标题: 如题:快速排序时,被排序的数组个数为1000时没问题,但是个数为9999甚至更多时报错? public class QuickSortTest {
public static void main(String args[])
{
//这里大小是1000时没错,但是为9999时有错。下面数据也改过相应大小了的
int[] aa=new int[1000];//int[] aa=new int[9999];时报堆栈溢出错误
for (int i = 0; i <1000; i++) {//改为:for (int i = 0; i <9999; i++)相应大小
int aaa=i;
System.out.println(aaa);
aa[i]=aaa;
}
long startT=System.currentTimeMillis();
quickSort(aa, 0, 999);//大小是9999时改为 quickSort(aa, 0, 9998)
long endT=System.currentTimeMillis();
System.out.println("系统运行时间:"+(endT-startT));
}
public static void quickSort(int[] strDate,int left, int right) {
if (left >= right )
return ;
int i = left, j = right;
int temp,key;
key = strDate[left];
while (i !=j) {
while (strDate[j]>key&& i < j)
j--;
while (strDate[i]<key && i < j)
i++;
public static void main(String args[])
{
int[] aa=new int[999];//这里大小是1000时没错,但是为9999时有错。下面数据也改过相应大小了的
int len=aa.length;
for (int i = 0; i <len; i++) {
int aaa=i;
System.out.println(aaa);
aa=aaa;
}
quickSort(aa, 0, len-1);
}
public static void quickSort(int[] strDate,int left, int right) {
if (left >= right )
return ;
int i = left, j = right;
int temp,key;
key = strDate[left];
while (i !=j) {
while (strDate[j]>key&& i < j)
j--;
while (strDate<key && i < j)
i++;