2019 九月 21 , 星期六
Home / Tag Archives: 算法

Tag Archives: 算法

php分治法

任何一个可以用计算机求解的问题所需的计算时间都与其规模N有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例如,对于n个元素的排序问题,当n=1时,不需任何计算;n=2时,只要作一次比较即可排好序;n=3时只要作3次比较即可,…。而当n较大时,问题就不那么容易处理了。要想直接解决一个规模较大的问题,有时是相当困难的。 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 如果原问题可分割成k个子问题(1<k≤n),且这些子问题 ...

Read More »

php 贪婪算法

贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。 例如平时购物找钱时,为使找回的零钱的硬币数最少,不考虑找零钱的所有各种发表方案,而是从最大面值的币种开始,按递减的顺序考虑各币种,先尽量用大面值的币种,当不足大面值币种的金额时才去考虑下一种较小面值的币种。这就是在使用贪婪法。这种方法在这里总是最优,是因为银行对其发行的 ...

Read More »

php递归无限级分类

<?php /**  * 递归无限级分类【先序遍历算】,获取任意节点下所有子孩子  * @param array $arrCate 待排序的数组  * @param int $parent_id 父级节点  * @param int $level 层级数  * @return array $arrTree 排序后的数组  */ function getMenuTree($arrCat, $parent_id = 0, $level = 0) {     static  $arrTree = ...

Read More »

进制转换算法 2转10 10转2

十进制与二进制转换之相互算法 十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果 例如192 192%2=0; 96%2=0 48%2=0 24%2=0 12%2=0 6%2=0 3%2=1 1%2=1 192的进制 11000000 二进制转十进制 从最后一位开始算,依次列为第0、1、2…位 第n位的数(0或1)乘以2的n次方 得到的结果相加就是答案 例如:01101011.转十进制: 第0位:1乘2的0次方=1 忽略前面6个0   从第7位开始1* ...

Read More »