专注PHP Golang开发
算法-简单的概率算法 算法-简单的概率算法
经典概率算法简介假设数组为:array(100,200,300,400), 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, 在本例当中就是减去
2019-04-01
算法-一致性Hash 算法-一致性Hash
简介一致性哈希算法(Consistent Hashing)最早在论文《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot
2019-04-01
算法-简易模拟熔断器 算法-简易模拟熔断器
简介一个分布式系统中,服务间互相调用错综复杂,假设某个基础服务宕机,那么就会导致若干上游调用方出现访问超时,进而引起上游重试, 导致宕机的基础服务遭受到数倍的流量放大,更加无法恢复服务。 这种恶劣的情况并不会就此结束,上游因为调用基础服务
2019-04-01
算法-选择排序 算法-选择排序
选择排序选择排序法思路:每次选择一个相应的元素,然后将其放到指定的位置 实现思路 双重循环完成,外层控制轮数,当前的最小值。内层控制的比较次数 代码实现<?php /** * @param array $arr * @retur
2019-03-01
算法-归并排序 算法-归并排序
归并排序(快速排序)分治法:将原问题分解为几个规模较小但类似的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解 在最坏、最佳、平均情况下归并排序时间复杂度均为o(nlogn) 代码实现<?php /** *
2019-03-01
算法-插入排序 算法-插入排序
插入排序简介插入排序(Insertion sort)是一种简单直观且稳定的排序算法。 如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序, 这个时候就要用到一种新的排序方法——插入排序法,
2019-03-01
算法-冒泡排序 算法-冒泡排序
冒泡排序简介冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排
2019-03-01
算法-二分查找 算法-二分查找
二分查找简介二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查
2019-03-01
算法-排列组合 算法-排列组合
排列组合数学上的阶乘、排列、组合的实现 代码实现<?php /** * 阶乘 * @param int $n * @return int */ function factorial(int $n) { //array_
2019-03-01