算法
lazy-ants
碧海蓝天不愿同行,心之所向无可至及
我承认我是一个孤独的人,山川河海难以涉步
我承认我是一个快乐的人,思想闯荡心中自由
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多维数组排序 array_multisort()
实现指定多维数组一个字段排序元数据:$array = array( 0=>array('id'=>8,'name'=>'Tom'), 1=>array('id'=>9,'name'=>'Peter'), 2=>array('id'=>5,'name'=>'Jack'));实现:通过将待排序数组的各个数组的$fi...原创 2019-08-02 16:12:36 · 962 阅读 · 0 评论 -
二分查找及其变种
数组类的二分查找function binarySearch($arr,$x){ $start=0; $end=count($arr)-1; while($start<=$end){ $mid=intval(($start+$end)/2);//这里只需要保证中间项下标的计算值为整数即可,也可以四舍五入,不影响结果 if($arr[$m...原创 2019-08-02 16:16:29 · 143 阅读 · 0 评论 -
php中文字符串翻转
<?phpheader("content-type:text/html;charset=utf-8"); /**此函数的作用是反转中文字符串mb_strlen() 获取字符的长度mb_substr() 获取字符的单个元素krsort() 按照键值逆序排序数组implode() 将数组拼接为字符串explode() 使用字符串分隔字符串 */function str_rev...原创 2019-08-02 16:29:45 · 137 阅读 · 0 评论 -
敏感词过滤--trie树
定义trie 树也称为字典树、单词查找树,最大的特点就是共享字符串的公共前缀来达到节省空间的目的了。例如,字符串 "abc"和"abd"构成的 trie 树如下:trie 树的根节点不存任何数据,每整个个分支代表一个完整的字符串。像 abc 和 abd 有公共前缀 ab,所以我们可以共享节点 ab。如果再插入 abf,则变成这样:如果我再插入 bc,则是这样(bc 和其他三个字符串没有公...原创 2019-08-04 10:37:36 · 905 阅读 · 0 评论 -
一致性Hash算法
一致性哈希算法是分布式系统中常用的算法,为什么要用这个算法?比如:一个分布式存储系统,要将数据存储到具体的节点(服务器)上, 在服务器数量不发生改变的情况下,如果采用普通的hash再对服务器总数量取模的方法(如key%服务器总数量),如果期间有服务器宕机了或者需要增加服务器,问题就出来了。 同一个key经过hash之后,再与服务器总数量取模的结果跟之前的结果会不一样,这就导致了之前保存数据的丢失...转载 2019-08-04 11:04:54 · 129 阅读 · 0 评论 -
redis布隆过滤器
布隆过滤器用于字符串去重复,比如网络爬虫抓取时URL去重、邮件提供商反垃圾黑名单Email地址去重。等等。用哈希表也可以用于元素去重,但是占用空间比较大,而且空间使用率只有50%。 布隆过滤器只占哈希表的1/8或1/4的空间复杂度,就能解决同样的问题,但是有一定的误判,而且不能删除已有元素。元素越多,误报率越大,但是不会漏报。对于还需要删除的布隆过滤器,还有Counter Bloom Filt...原创 2019-08-04 11:14:44 · 354 阅读 · 0 评论 -
PHP内置字符串的实现
//字符串长度 function strlen ($str) { if ($str == '' ) return 0; $count = 0; while (1){ if ( $str[$count] != NULL){ $count++;...原创 2019-08-08 17:24:35 · 209 阅读 · 0 评论 -
写个函数,判断下面扩号是否闭合,左右对称即为闭合: ((())),)(()),(()))),(((((()),(()()),()()
遇到左括号进栈,遇到右括号出栈(如果栈里没有,说明不闭合),遍历到最后元素,判断栈内为空,即为闭合function checkClose($str){ $stack = []; for ($i = 0; $i < strlen($str); ++$i) { if ($str[$i] == "(") { $stack[] = "("...原创 2019-08-11 23:53:38 · 505 阅读 · 0 评论
分享