
算法
phparchitect
这个作者很懒,什么都没留下…
展开
-
从1亿个ip中找出访问次数最多的IP
问题一: 怎么在海量数据中找出重复次数最多的一个算法思想: 方案1:先做hash,然后求模映射为小文件,求出每个小文件中重复次数最多的一个,并记录重复次数。 然后找出上一步求出的数据中重复次数最多的一个就是所求(如下)。 问题二: 网站日志中记录了用户的IP,找出访问次数最多的IP。算法思想: IP地址最多有2^32=4G种取值可...转载 2018-07-11 09:40:48 · 1040 阅读 · 0 评论 -
面试常考的常用数据结构与算法
数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人这方面的能力,把每种结构和算法都问一遍不太现实。所以,实际的情况是,企业一般考察一些看起来很基本的概念和算法,或者是一些变形,然后让你去实现。也许看起来简单,但是如果真让你在纸上或者是计算机上快速地完成一个算法,并且设计...转载 2018-07-24 11:28:48 · 401 阅读 · 0 评论 -
php 实现阶乘累加(1!+2!+3!+....+n!=?)
字号 //求N阶乘函数function factorial($n){ $j=1; for($i=1;$i<=$n;$i++){ $j*=$i; } return $j;}//求阶乘的和 function getSum($n){ $sum=0; for($i=1;$i<=$n;$i++...转载 2018-10-11 17:30:55 · 8498 阅读 · 0 评论 -
PHP实现四种基本排序算法
前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互...转载 2018-10-24 10:52:52 · 156 阅读 · 0 评论 -
算法
<?php/***快速排序*参数 array $arr*结果 array */function quickSort($arr){ //计算数组元素个数 $len = count($arr); //如果只有一个元素或为空数组,直接返回该数组 if($len <= 1) { return $arr; } //设置基准值,通常为数组的第一个元素 $s...原创 2018-11-07 12:13:29 · 198 阅读 · 0 评论 -
PHP实现二分查找(递归与非递归)
简介:二分查找技术,又称为折半查找。它的前提是线性表中的记录必须是关键码有序(通常从小到达有序),线性表必须采用顺序存储。基本思想:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所有查找区域无记录,查找失...转载 2018-11-05 23:43:53 · 376 阅读 · 0 评论