JAVA快速排序算法,程序运行,显示错误栈溢出,请大神帮我看看为什么;

importjava.util.Scanner;publicclassQuicksort{publicstaticinttempnum;static{tempnum=0;... import java.util.Scanner;
public class Quicksort {
public static int tempnum;
static
{
tempnum=0;
}
public static int exchange;
static
{
exchange=0;
}
public static void main(String args[])//主函数;
{
Scanner num=new Scanner(System.in);
int [] array1 =new int[8];
for(int cycle=0;cycle<8;cycle++)
{
array1[cycle]=num.nextInt();
}
scan1(array1);
for(;tempnum<array1.length;tempnum++)
{
System.out.print(array1[tempnum]);
System.out.print(" ");
}
}
public static void quicksort(int []q,int low,int high)//循环递归;
{
if(low<high)
{
int middle1=quicksortr(low,q,high);
quicksort(q,low,middle1-1);
quicksort(q,middle1+1,high);
}
}
public static int quicksortr(int low,int []array,int high)//此方法用来做数组排序分割;
{
int qi1=array[low];//数组第一个元素作为中间值;
while(low<high)
{
while(array[high]>=qi1)
{
high--;
}
exchange=array[low];
array[low]=array[high];
array[high]=exchange;
while(array[low]<=qi1)
{
low++;
}
exchange=array[high];
array[high]=array[low];
array[low]=exchange;
}
//qi1=array[low];
return low;
}
public static void scan1(int q[])
{
if(q.length>0)
{
quicksort(q,0,q.length-1);
}
else
{
System.out.println("数组为空");
}
}
}
展开
 我来答
WM_THU
2015-08-10 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3937万
展开全部
我运行的结果不是“栈溢出”,而是数组下标越界。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
...
用的测试数据是:
int[] array1 = {2, 1, 3, 7, 6, 4, 5, 0};

请题主再检查一下错误信息?最好原样完整地贴出来,
追问
确实,是下标越界,这个是为什么呢?我查不到,能帮我看下吗?我加了50分
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式