
算法
文章平均质量分 61
mr.杰瑞
只要开始就不算晚……
展开
-
hash 一致性是啥?
可算搞明白了,hash一致性是一种算法,保证了服务器的高可用,一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:平衡性(Balance):平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。很多哈希算法都能够满足这一条件。单调性(Monotonicity):单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中。哈希的结果应能够保证原有已分配的内容可以被映射到原有的或者新的缓冲中去,而不会被映射到原创 2021-04-12 15:12:19 · 379 阅读 · 0 评论 -
算法刷题
力扣上刷题清单原创 2020-12-28 10:02:23 · 101 阅读 · 0 评论 -
算法学习(二)
常数时间的操作: 执行时间固定的操作例如:常见的算术运算(+ - * / %)位运算赋值 比较 自增 自减数组寻址操作选排:选最小值交换,一次类推冒泡:每轮把大数移到最后插排:小数会换到前面二分:有序找值异或无进位相加 与顺序无关a = 12b = 67a = a ^ b a = 12 ^ 67b = a ^ b b = 12 ^ 67 ^ 67 = 12a = a ^ b a = 12 ^ 67 ^ 12 = 67实现了两个值得颠倒如果一个数组种只有一个原创 2020-12-26 16:36:42 · 116 阅读 · 1 评论 -
算法与数据结构 如何分析时间复杂度和空间复杂度
时间复杂度:1.不计入计算的是打印 和初始变量2遍历for($i=0;$i<$num-1;$i++){ $p = $i; for($j=$i+1;$j<$num;$j++) { $p = $arr[$j]<$arr[$p] ? $j : $p; //主要耗时点在这里 (n-1)+(n-2)+...+1 等差数列和 n(n-1)/2 //还有些常数时间T }}空间复杂度:空间复杂度指的是算法用到的额外空间将数组复制,到别的数组算法不稳定:两个数据原创 2020-12-12 22:30:54 · 496 阅读 · 0 评论 -
数据结构与算法 基础概念
数据结构:存储数据的不同的方式。1数据每个格占用空间一样大,格子挨在一起 叫数组插入新值:如果要在一个数组中插入一个值,那就比较难,因为格子是没有空隙的。那怎么办呢,1.需要重新分配一个新单元格,比原来的要大,然后复制前后的数据,这个空间正好能装入要加入的值。查询某个值:根据单元格的所占大小(计算偏移量),可以直接就能定位到要找的数据2每个格子里存着数据,还存着指向下一个小格子的指针,像一个链条,这样的方式叫做链表插入新值:如果有一个链表,需要在中间插一个新值,需要将原有的链条打断,然后和新原创 2020-12-10 01:31:29 · 178 阅读 · 0 评论 -
实现9位数的乘法,不丢精度怎么实现
php扩展bcmath可以使用bcmul函数例子var_dump(bcmul(‘123456789’, ‘987654321’));利用乘法来处理例如a = 123456789b = 987654321用 a的9 和 b的1,2,3,4,5,6,7,8,9 相乘 将结果分别存在一个a与b下标组成的临时数组中,同理用a的8和b的1,2,… 依次类推 用a的1和b的1,2,3,4,5,6,7,8,9 做乘法遍历临时数组,如果当前下标是7的数组的值大于9,则向下取整将值累加到下标为6的数组中,并原创 2020-08-13 16:59:23 · 427 阅读 · 0 评论 -
递归方法求20!
首先要知道什么是阶乘比如5!= 54321那么就能想到每次 乘一个比初始值减一的数思路:如果初始数字为一,则直接返回1 大于1则每次减一function numFactorial($n){ if($n>1) return $num = $n * numFactorial($n-1); else return $n;}$num = numFactorial...原创 2019-04-05 19:32:22 · 1739 阅读 · 0 评论 -
有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛
function niu($n){ static $num = 1; for ($i=1;$i<=$n;$i++) { if($i>=4 && $i<15) { $num++; niu($n-$i); } elseif($i==...原创 2019-03-29 17:54:38 · 710 阅读 · 2 评论