算法基础
PHP算法基础
踏凌霄
php开发工程师
展开
-
算法:菲波那切数列
斐波那契数列 1 1 2 3 5 8 13 21 34 55 … 概念: 前两个值都为1,该数列从第三位开始,每一位都是当前位前两位的和 规律公式为: Fn = F(n-1) + F(n+1) F:指当前这个数列 n:指数列的下标 非递归写法: function fbnq($n){ //传入数列中数字的个数 if($n <= 0){ return 0; ...原创 2018-12-28 18:35:41 · 1175 阅读 · 0 评论 -
LBS地理位置距离计算方法之【geohash算法】
应用场景 最近的APP开发需求涉及到一个类似微信附近人的功能。 APP是采集数据应用,当发布的任务绑定店铺的时候,如果用户在店铺附近,则可以浏览该题目,并且答题,得到相应的奖励。 为什么不直接使用经纬度 如果查找周边,使用经纬度,需要用到经度>多少,经度<多少,纬度>多少,纬度<多少,在数据库中就用不到索引 有的人认为如果确定了多少米的范围,那么直...原创 2018-05-24 17:54:17 · 5932 阅读 · 0 评论 -
算法:快速排序
思路分析 选择一个基准元素,通常选择第一个元素或者最后一个元素。通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素。此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。 代码实现 function quickSort($arr) { //先判断是否需要继续进行 $length = count($arr); if(原创 2018-01-25 16:22:13 · 226 阅读 · 0 评论 -
算法:冒泡排序
思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。 * 比如:2,4,1 // 第一次 冒出的泡是4 * 2,1,4 // 第二次 冒出的泡是 2 * 1,2,4 // 最后就变成这样方案一 $arr=array(1,43,54,62,21,66,32,78,36原创 2017-05-05 16:42:44 · 246 阅读 · 0 评论