• PHP 归并算法-分而治之


    <?php
    $arr
    = [5,12,3,55,3,9,10,3,23,123,4,9]; /** * [branch 分] * @param array $arr [description] * @return [type] [description] */ function branch( array $arr):array{ // 切割成粒度为1的数组返回 if(count($arr) == 1 ){ return $arr; } $s = intval(count($arr) /2); $left = array_slice($arr,0,$s); $right = array_slice($arr,$s); $left = branch($left); $right = branch($right); // left right两个数组进行排序合并 $arr = sortMerge($left,$right); return $arr; } /** * [sortMerge 治] * @param array $left [description] * @param array $right [description] * @return [type] [description] */ function sortMerge(array $left, array $right):array { $tmp = []; while(count($left) && count($right)){ $tmp[] = $left[0] > $right[0]?array_shift($right):array_shift($left); } echo '<pre>'; echo 'tmp->'; print_r($tmp); echo 'left->'; print_r($left); echo 'right->'; print_r($right); echo '<hr>'; echo '</pre>'; return array_merge($tmp,$left,$right); } $R = branch($arr); echo '<pre>'; print_r($R); echo '</pre>';
  • 相关阅读:
    Meteor会话
    Meteor事件
    Meteor表单
    Meteor集合
    Meteor模板
    Visual Studio 必备神器
    DB2 DATE类型在显示的时候,带有00:00:00,去掉的方法,使用VARCHAR()函数
    SQL 递归查询
    程序员最艰巨的十大任务
    Windows 7,64位机器上安装DB2 7.2+FP7
  • 原文地址:https://www.cnblogs.com/LF-place/p/14959970.html
Copyright © 2020-2023  润新知