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++;
temp = strDate[j];
strDate[j] = strDate[i];
strDate[i] = temp;
}
i++;
quickSort(strDate,left, i-1);
quickSort(strDate,i , right);
}
}
注意,其他排序方法我也是用同一数组,改了大小不会有错,为什么就是快速排序这里会出错。求解 |