那位大虾帮我看看,我用Jcreat输入的程序可总是在第二个while处报非法表达的错误。不知道错在哪? private static void quicksort(String[] a,int lo0,int hi0){
int lo=lo0;
int hi=hi0;
if(lo>=hi)
return;
String mid=a[(lo+hi)/2];
while(lo<hi){
while(lo<hi&&a[lo].comparaTo(mid))<0){
lo++;
}
while(lo<hi&&a[hi].comparaTo(mid))>0){
hi--;}
if(lo<hi){
String T=a[lo];
a[lo]=a[hi];
a[hi]=T;
lo++;
hi--;
}
if(hi<lo){
int T=hi;
hi=lo;
lo=T;
}
quicksort(a,lo0,lo);
quicksort(a,lo==lo0?lo+1:lo,hi0);
}
}
int lo=lo0;
int hi=hi0;
if(lo>=hi)
return;
String mid=a[(lo+hi)/2];
while(lo<hi){
while(lo<hi&&a[lo].comparaTo(mid))<0){
lo++;
}
while(lo<hi&&a[hi].comparaTo(mid))>0){
hi--;}
if(lo<hi){
String T=a[lo];
a[lo]=a[hi];
a[hi]=T;
lo++;
hi--;
}
if(hi<lo){
int T=hi;
hi=lo;
lo=T;
}
quicksort(a,lo0,lo);
quicksort(a,lo==lo0?lo+1:lo,hi0);
}
}
while(lo<hi&&a[lo].comparaTo(mid))<0){
两处都多了个),而且方法名也写错了,应该是compareTo
|--多了这个括号,a[lo].comparaTo(mid)<0 应该是这样
while(lo<hi&&a[hi].comparaTo(mid))>0)
这个也是这个问题还有.. comparaTo 应该为compareTo 难道你这个关键字不是在IDE里自动提示自动输入的吗?
------------->>>>>> while(lo<hi&&a[hi].compareTo(mid)>0){
int lo=lo0;
int hi=hi0;
if(lo>=hi)
return;
String mid=a[(lo+hi)/2];
while(lo<hi){
while(lo<hi&&a[lo].compareTo(mid)<0){
lo++;
}
while(lo<hi&&a[hi].compareTo(mid)>0){
hi--;}
if(lo<hi){
String T=a[lo];
a[lo]=a[hi];
a[hi]=T;
lo++;
hi--;
}
if(hi<lo){
int T=hi;
hi=lo;
lo=T;
}
quicksort(a,lo0,lo);
quicksort(a,lo==lo0?lo+1:lo,hi0);
}
}