请大家帮我看看这个快速排序算法哪错了?
class ShiYan1 {
int QuickOnePass(int R[],int l,int h){
int i,j;
i=l;
j=h;
R[0]=R[i];
do{
while((R[j]>=R[0])&&(j>i))j--;
if(j>i){
R[i]=R[j];
i++;
}
while((R[i]<=R[0])&&(j>i))i++;
if(i<j){
R[j]=R[i];
j--;
}

}while(i==j);
R[i]=R[0];
return(i);



}void QuickSort(int R[], int l,int h){
int k;
if(l<h){
k=QuickOnePass(R,l,h);
QuickSort(R,1,k-1);
QuickSort(R,k+1,h);


}


}}
public class  ShiYan{
public static void main(String[] args){
int[] a={0,3,5,4,2,7,5,9,0};
ShiYan1 bb=new ShiYan1();
bb.QuickSort(a, 1, 8);
for(int i=1;i<a.length;i++){
System.out.print(a[i]+"");

}

}



}

解决方案 »

  1.   

    用得了这么复杂吗?最重要的是变量作用舆问题最后打印的还是main里的数组!根本没有打印出排序结果!
      

  2.   

    我没有给注解可能看起比较吃亏,QuickOnePass是完成一趟快速排序,利用 QuickSort来递归调用
    quickOnePass函数直到每个小段只包含一个数为止.后面在搞个类来实验数组a
      

  3.   

    java,asp,.net,技术讨论群14401742,现在缺管理员,欢迎高手加入。