关于快速排序

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:43:30
我仿照写了一段代码 谁能帮我看看什么问题。。
public class quick {
public static void main(String[] args) {
int[]a={2,3,5,5,6,7,8,6,5,4,3,3,};
quickSort(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
public static void quickSort(int[] a, int lo0, int hi0) { //就是这里有问题!!!!
int lo=lo0;
int hi=hi0;

if(lo>=hi)
return;

boolean f=true;//确定指针方向的逻辑变量
while(lo!=hi){
if(a[lo]<a[hi]){
int p=a[hi];//交换数字
a[hi]=a[lo];
a[lo]=p;
}
f=(f==true)?false:true;//决定下标移动,还是上标移动
}
// 将指针向前或者向后移动
if(f)
hi--;
else
lo++;
// 将数组分开两半,确定每个数字的正确位置
hi++;
lo--;
quickSort(a,lo0,lo);
quickSort(a,hi,hi0);
}
}
}

报错:Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method quickSort(int[], int, int) is undefined for the

public class quick {
public static void main(String[] args) {
int[]a={2,3,5,5,6,7,8,6,5,4,3,3,};
quickSort(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}//下面的括号提到这里
public static void quickSort(int[] a, int lo0, int hi0) { //就是这里有问题!!!!
int lo=lo0;
int hi=hi0;

if(lo>=hi)
return;

boolean f=true;//确定指针方向的逻辑变量
while(lo!=hi){
if(a[lo]<a[hi]){
int p=a[hi];//交换数字
a[hi]=a[lo];
a[lo]=p;
}
f=(f==true)?false:true;//决定下标移动,还是上标移动
}
// 将指针向前或者向后移动
if(f)
hi--;
else
lo++;
// 将数组分开两半,确定每个数字的正确位置
hi++;
lo--;
quickSort(a,lo0,lo);
quickSort(a,hi,hi0);
}
//这里的括号提到上面
}