题目描述
利用快速排序算法将读入的n个数从小到大排序后输出。
(C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)
本题为函数题,只需要提交函数即可
c/c++:
void QuickSort(int a[],int l,int r)
{
}
java:
public static void QuickSort(int[] a,int l,int r)
{
}
public static void QuickSort(int[] a,int l,int r) {
if (l<r){
int q=Partition(a,l,r);
QuickSort(a,l,q-1);
QuickSort(a,q+1,r);
}
}
public static int Partition(int[] a, int l, int r){
int x=a[r];
int i=l-1;
for (int j=l;j<=r-1;j++){
if (a[j]<=x){
i++;
int exchange=0;
exchange=a[i];
a[i]=a[j];
a[j]=exchange;
}
}
int exchange=0;
exchange=a[i+1];
a[i+1]=a[r];
a[r]=exchange;
return i+1;
}