下面程序的作用:采用快速排序法对一个整型数组进行排序
class QuickSort {
public static void sort(int v[],int left,int right){
int i,last;
if(left>=right)
return;
__(1)__ =left;
for(i=last+1; i<=right; i++)
if(v[i]< __(2)__)
swap(v, __(3)__ ,i);
sort(v,left,last-1);
sort(v,__(4)__,right);
}
privat __(5)__ void swap(int v[], int i, int j){
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;
}
}
求(1)————(5)的解?

解决方案 »

  1.   

    是程序员考试的java试题,有高手会么?
    参考答案:
    (1)last
    (2)v[left]
    (3)++last
    (4)last+1
    (5)static
    对(1)(4)(5)我都觉得没问题,但(2)(3)是在看不懂!能指点一下么?
      

  2.   

    last=left把第一个元素设为参考对象,把比它小的放到左边大的放到右边。进行递归
      

  3.   

    想了半天,头都大了,为什么(3)填++last.而不是last?
    例如数组8,1,4,9,10,3,7
    程序第一次运行有v[last]=8,v[i]=1,然后交换值,显然应该用swap(v,lsast,i)而不是swap(v,++last,i)
    郁闷啊!
      

  4.   

    感谢大家的支持,头次发贴,感觉CSDN很不错,给我们很多交流的机会!真要好好利用才行!