PHP算法-快速排序 分治法_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > PHP算法-快速排序 分治法

PHP算法-快速排序 分治法

 2017/9/1 8:08:47  erntoo  程序员俱乐部  我要评论(0)
  • 摘要:/***快速排序分治法*1把小于指定数($key=$arr[0])的放在左侧数组(left);大于$key放在右侧数组*2合并数组**@paramunknown$arr*/functionquick_sort($arr){$count=count($arr);if(count($arr)>1){$key=$arr[0];$left=[];$right=[];for($i=1;$i<$count;$i++){if($arr[$i]<=$key){$left[]=$arr[$i]
  • 标签:PHP 算法 快速排序
class="php" name="code">/**
 * 快速排序 分治法
 * 1 把小于指定数($key = $arr[0])的 放在左侧数组(left);大于$key 放在右侧数组
 * 2 合并 数组
 *
 * @param unknown $arr            
 */
function quick_sort($arr)
{
    $count = count($arr);
    if (count($arr) > 1) {
        $key = $arr[0];
        $left = [];
        $right = [];
        for ($i = 1; $i < $count; $i ++) {
            if ($arr[$i] <= $key) {
                $left[] = $arr[$i];
            } elseif ($arr[$i] > $key) {
                $right[] = $arr[$i];
            }
        }
        $left = quick_sort($left);
        $right = quick_sort($right);
        return array_merge($left, [
            $key
        ], $right);
    } else {
        return $arr;
    }
}

?

发表评论
用户名: 匿名