现在的位置: 首页 > 综合 > 正文

基本算法个人PHP 实现(二)

2012年04月17日 ⁄ 综合 ⁄ 共 455字 ⁄ 字号 评论关闭
<?php
/**
 * php 快速排序
 */
$arr = array(7,8,6,5,3,10);
function quick($array){
        if(count($array) <=1) return $array;
        $k = $array[0];
        $left = array();
        $right = array();
        for($i =1; $i< count($array); $i++){
            if($array[$i] <= $k){
                $left[] = $array[$i];
            }else{
                $right[] = $array[$i];
            }
        }
        $left = quick($left);
        $right = quick($right);
        return array_merge($left,array($k),$right);
}
print_r(quick($arr));

?>

  核心思想就是每次取得 要排序的数组首个元素。 然后和数组的其他元素比较  大于他则排在左边否则在右。

  然后在对他左边的集合进行相同排序  直到左边只存在 0~ 1个元素。 (0代表本次排序的首元素最小。 1则代表只有1个元素大于他)

  

【上篇】
【下篇】

抱歉!评论已关闭.