算法实现
public class QuickSort {
private static void swap(int []arr,int a,int b){
int tmp = 0;
tmp = arr[a];
arr[a] = arr[b];
arr[b] = tmp;
}
public static int partition(int []arr,int p,int q){
int i = p-1;
int j = p;
while(j <= q){
if(arr[j] <= arr[q]){
swap(arr,++i,j);
}
j++;
}
return i;
}
public static void quickSort(int [] arr,int p,int q){
if(p < q){
int i = partition(arr,p,q);
quickSort(arr,p,i-1);
quickSort(arr,i+1,q);
}
}
public static void main(String[] args){
int [] arr = {1,3,30,5,6,23,111,232,0,112,10,20};
quickSort(arr,0,arr.length-1);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i] +" ");
}
}
}
运行时间
最坏情况
T(n)=O(n2)
最好情况
T(n)=O(nlgn)