排序算法-快速排序

思路: 通过一趟排序将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,已达到整个序列有序的目的。

复杂度: O(logn)

function quickSort(&$list, $left, $right){
    $_left = $left;
    $_right = $right;
    if($_left < $_right){
       $temp = $list[$left];
       while($_left != $_right){
           while($_left < $_right && $list[$_right] >= $temp){
                $_right--;
           }
           $list[$_left] = $list[$_right];
                 
           while($_left < $_right && $list[$_left] <= $temp){
                $_left++;
           }
           $list[$_right] = $list[$_left];
       }
       $list[$_right] = $temp;
       quickSort($list, $left, $_left - 1);
       quickSort($list, $_right + 1, $_right);
    }
}
posted @ 2019-02-17 16:01  ony-z  阅读(115)  评论(0编辑  收藏  举报