`
apprentice_ll26
  • 浏览: 25959 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

8种Java排序算法总结5(ZZ)

阅读更多
7、 快速排序

快速排序不稳定,O(log(n))的额外空间,时间复杂度为O(nlog(n)),不是自适应的。

  
 public void quickSort(){

       recQuickSort(0,nElems-1);

    }

    public void recQuickSort(int left, int right){

       if(right-left<=0){

           return;

       }else{

           long pivot = theArray[right];

           

           int partition = partitionIt(left, right, pivot);

           recQuickSort(left, partition-1);

           recQuickSort(partition+1, right);

       }

    }

    public int partitionIt(int left, int right, long pivot){

       int leftPtr = left -1;

       int rightPtr = right;

       while(true){

           while(theArray[++leftPtr]<pivot);

           while(rightPtr>0&&theArray[--rightPtr]>pivot);

           if(leftPtr>=rightPtr){

              break;

           }else{

              swap(leftPtr,rightPtr);

           }

       }swap(leftPtr,right);

       

       return leftPtr;

    }

    

    public void swap(int dex1, int dex2){

       long temp;

       temp = theArray[dex1];

        theArray[dex1]=theArray[dex2];

       theArray[dex2]=temp;

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics