Java快速排序(QuickSort)算法实现

来源:互联网 发布:诸暨行知小学 编辑:程序博客网 时间:2024/04/30 19:04

算法实现

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)

0 0