PHP算法
快乐小树根
生命太短暂,不要去做一些根本没有人想要的东西
展开
-
去重
//通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。//提示:for循环$data='abcdrwretryuiytavbsdabdcrewrtyuytrrggfddsffds';function filter($data){ $lenght原创 2017-09-04 11:05:38 · 246 阅读 · 0 评论 -
冒泡排序
$new=array(9,2,8,4,2,5); for($i = 0;$i for($j = 0;$j if($new[$j]>$new[$j+1]){ $temp = $new[$j]; $new[$j] = $new[$j+1]; $new[$j+1]=$temp;原创 2017-08-28 20:04:26 · 255 阅读 · 0 评论 -
希尔算法
/** * 希尔排序 */function shell_sort($arr){ // 将$arr按升序排列 $len = count($arr);//算数组的总长度 $f = 3;// 定义因子//拿这个数和哪个数比 $h = 1;// 最小为1//最小隔几个对比,设为1就是隔一个对比 if($h $h = $f*$原创 2017-08-30 21:02:33 · 341 阅读 · 0 评论 -
PHP 1,1,2,3,5,8,13,21,34。。。求第30位的数是多少
PHP 1,1,2,3,5,8,13,21,34。。。求第30位的数是多少,请编写递归和非递归的函数实现计。最近想起来了这个问题,但是网上很多都是C#的代码,这里我就小小的研究了一下,写了一下算法原创 2017-08-31 10:28:47 · 3725 阅读 · 0 评论 -
二分查找,顺序查找
/**顺序查找*/function seqSearch($arr,$k){ foreach($arr as $key=>$val){ if($val==$k){ return $key; } } return "meiyou";}/*二分查找法*/function binSe原创 2017-08-31 20:09:09 · 315 阅读 · 0 评论 -
双向队列
用PHP实现一个双向队列,提示array_unshift,array_shift,array_push,array_popclass sxdl{ public $arr; function __construct($arr) { $this -> arr = $arr; } function add($val){ //原创 2017-09-01 14:35:17 · 251 阅读 · 0 评论 -
PHP 选猴王面试题
一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号方法1function monkey1($n,$m){ $r=0; for ($i=1;$i原创 2017-09-01 20:34:51 · 2921 阅读 · 0 评论 -
两组有序数组合并
$a=[1,4,6,9,12,56];$b=[2,5,8,11,23,44];$i=0;$j=0;$count1=count($a);$count2=count($b);while ($i if ($a[$i] $arr[]=$a[$i]; $i++; }else{ $arr[]=$b[$j];原创 2017-09-02 07:54:20 · 292 阅读 · 0 评论 -
Memcache LRU算法
阿里2014笔试题一道:某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问一下数据项的时候:1,5,1,3,5,2,4,1,2出现缓存直接命中的次数是?,最后缓存中即将准备淘汰的数据项是?答案:3, 5解答:1调入内存 15调入内存 1 51调入内存 5 1(命中 1,更新次序)3调入内存 5 1 35调入内存 1 3 5 (命中5)2原创 2017-11-09 08:10:38 · 357 阅读 · 0 评论