算法导论上面的算法
public class QuickSort {
/*A是待排序数值,p是数组起始位置,r是数组结束位置*/
public void quicksort(int[] A,int p,int r){
if(p < r)
{
int q = partition(A,p,r);
quicksort(A,p,q-1);
quicksort(A,q+1,r);
}
}
public int partition(int[] A, int p, int r) {
int x = A[r];
int i =p-1;
for(int j = p; j < r; j++)
{
if(A[j]<=x)
{
i = i+1;
swap(A,i,j);
}
}
swap(A,i+1,r);
return i+1;
}
public void quick(int[] A)
{
if(A.length > 0)
{
quicksort(A,0,A.length-1);
}
}
public static void swap(int [] arr,int x ,int y)
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
public class QuickSort {
/*A是待排序数