排序算法-快速排序

       快速排序算法是排序算法中效率比较高的一种算法,它主要思想是二分与递归。快速排序算法一开始可能比较难理解,但是理解之后也是比较容易记住的。


快速排序算法的主要思想

1.以数组元素的第一个数为判断数(哨兵元素)

2.从数组元素的队尾开始,找到一个别哨兵元素小的元素Right

3.从数组元素的队头开始,找到一个别哨兵元素大的元素Left

4.交换元素Right与Left

5.循环3、4步骤,知道Right与Left的位置相等,交换哨兵元素的位置

6.将哨兵元素的前部队列与后部队列一次重复上述步骤,使用递归完成排序

   /**
     * 快速排序法
     */
    public void quickSort(int[]a, int left, int right){
        int i,j,t,temp;
        if(left>right)return;
        temp=a[left];
        i=left;j=right;
        while(i!=j){
            while(a[j]>=temp && i


时间复杂度分析

排序算法的平均时间复杂度为O(Nlogn),最差时间复杂度为O(n2)

以下是个人对快速排序法的理解和代码。针对高效率的快速排序算法还有待研究



你可能感兴趣的:(排序算法)