php实现快速排序

<?php
/**
 * 快速排序
 *
 * @param array $array
 * @return array
 */
function Qsort($array) {
    if (!is_array($array) || empty($array)) {
        return array();
    }
    $len = count($array);
    if($len <= 1){
        return $array;
    }
    $key = $array[0];
    $left = array();
    $right = array();
    for($i = 1; $i < $len; $i++) {
        if ($array[$i] <= $key) {
            $left[] = $array[$i];
        } else {
            $right[] = $array[$i];
        }
    }
    //print_r($left);exit;
    $left = Qsort($left);
    
    $right = Qsort($right);
    //print_r($key);exit;
    //print_r(array_merge($left, array($key), $right));echo "<br>";
    return array_merge($left, array($key), $right);
}
$array = array(29,21,3,234,57,76,6,74);
$result = Qsort($array);
print_r($result);
?>

posted @ 2014-06-07 16:59  eterwei  阅读(147)  评论(0编辑  收藏  举报