随笔分类 -  算法

一些小型的智力题或者算法
斐波那契数列PHP非递归数组实现
摘要:概念: 斐波那契数列即表达式为 a(n) = a(n-1)+a(n-2) 其中 a1 =0 a2 = 1 的数列代码实现功能: 该类实现初始化给出n,通过调用getValue函数得出a(n)的值=0) { $this->num_count = $num_count; } } public function getValue() { for($i=2; $inum_count; $i++) { $this->Fbnq_arr[$i] = $this... 阅读全文

posted @ 2014-03-08 16:38 出发的兰彻 阅读(778) 评论(0) 推荐(0)

PHP 堆排序实现
摘要:在《算法: C语言实现》上看到的写法,很简洁,用PHP实现一把。=1;$i--) { fixDown($arr, $i, $len); } while($len>1) { exch($arr[1], $arr[$len]); fixDown($arr, 1, --$len); } array_shift($arr);}$arr = array(4,6,4,9,2,3);headSort($arr); 阅读全文

posted @ 2013-11-30 11:51 出发的兰彻 阅读(372) 评论(1) 推荐(0)

猜数字和楼层扔鸡蛋问题
摘要:A、B两个人在玩猜数字游戏,A随机写了一个数字,在[1,100]区间之内,将这个数字写在了一张纸上,然后B来猜。 如果B猜的数字偏小的话,A会提示:“数字偏小” 一旦B猜的数字偏大的话,A以后就再也不会提示了,只会回答“猜对或猜错” 问:乙至少猜(13)多少次才可以准确猜出这个数字,在这种策略下,乙猜的第一个数字是(13)解析: 首先阅读题目,一个很重要的信息点就是:一旦B某次猜的偏大,A就不再提示,此次之后B猜的偏小A也不会再提示,只回答猜对与否。如果没有这个条件,或者说改变这个条件,改为:如果B猜的偏大,A会提示B这次猜的偏大那么相信大家都会给出答案,那就是用二分法,只需要7次就可以保.. 阅读全文

posted @ 2013-10-29 14:30 出发的兰彻 阅读(721) 评论(0) 推荐(0)

PHP快速排序及其时间复杂度
摘要:$r) return; $tmp_l = $l; $tmp_r = $r; $privot = $arr[$r]; while($tmp_l $tmp_r; 因为这里使用不是交换的方式,而是直接使用直接赋值的形式。 $arr[$tmp_r] = $arr[$tmp_l]; while($arr[$tmp_r] >= $privot && $tmp_l<$tmp_r) --$tmp_r; // 没有=等于的判断 会出现死循环,没有详细考究原因。 $arr[$tmp_l] = $arr[$tmp_r]; } ... 阅读全文

posted @ 2013-10-27 14:17 出发的兰彻 阅读(933) 评论(0) 推荐(0)

导航