算法
文章平均质量分 91
fish_study_csdn
PHP go JAVA python 开发
展开
-
限流常见算法分析
限流分为三种:1 合法性验证 1)比如登陆,注册, 要求输入短信验证码或图片验证码 2)IP黑明单,通过限制IP的方式限制用户的访问2 容器限流 1)tomcat 2)nginx3 服务端限流 1)固定时间窗口算法 2)滑动时间窗口算法 3)令牌桶算法 4)漏桶算法...原创 2021-07-26 17:52:52 · 749 阅读 · 0 评论 -
猴子选大王--约瑟夫问题浅析(php 版本)
猴子选大王问题是一个十分经典的算法问题,这个问题是这样的:一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 这个问题要解决起来并不难,但求解的方法很多;题目的变化形式也很多,而我们统称这类问题为约瑟夫问题。这类题目基本的描述为:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6原创 2020-11-03 11:33:52 · 181 阅读 · 1 评论 -
常见查找算法--(快速查找或二分查找)
快速查找:快速查找也称二分查找,二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x.递归实现:$search = 80;$a = array(5,13,19,21,37,56,64,75,80...原创 2019-07-13 07:49:10 · 4091 阅读 · 0 评论 -
php 常见排序算法2(快速排序)
例如快速排序问题,一个列表进行排序,如下图首先选择列表中的一个元素作为基准元素,其他的元素都与这个元素做比较,找出小于这个基准值的值、大于基准值的值。这称为“分区”,这时有,1)一个由所有小于基准值的数字组成的子数组;2)基准值3)一个由所有大于基准值的数组组成的子数组然后再将“小于v”和“大于v”的数据块作为子数组,同样选择基准值,再进行上述类似操作,当执行到数据块中...原创 2019-07-13 07:56:46 · 157 阅读 · 0 评论 -
php 常见算法1(冒泡排序和选择排序)
冒泡排序:泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较function swag(&$x, &$y)...原创 2019-07-13 07:39:27 · 222 阅读 · 0 评论 -
递归
递归: 方法自己调用自己例如:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!(n!=1×2×3×...×n)阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×nfunction f($n){if ($n < 0) {echo "输入不能是负数";} el...原创 2019-07-13 07:44:24 · 109 阅读 · 0 评论