
算法数据结构
_飞翔的企鹅_
这个作者很懒,什么都没留下…
展开
-
400行代码实现本地Key-Value缓存,性能每秒几百万次,进程重启有效,LRU淘汰——HashTable
liuyun827@foxmail.com原创,转载请注明出处:http://blog.youkuaiyun.com/gdutliuyun827 Key-Value缓存有很多,用的较多的是memcache、redis,他们都是以独立服务的形式运行,在工作中有时需要嵌入一个本地的key-value缓存,当然已经有LevelDb等,但感觉还是太重量级了。 本文实现了一种超级轻量的缓存, 1、实现代码仅仅需要原创 2013-12-10 17:11:37 · 2866 阅读 · 3 评论 -
求有环单链表中的环长、环起点、链表长
1.判断单链表是否有环 使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。 就是所谓的追击相遇问题: 2.求有环单链表的环长 在环上相遇后,记录第一次相遇点为Pos,之后指针slow继续每次走1步,fast每次走2步。在下次相遇转载 2015-03-09 15:11:33 · 1048 阅读 · 0 评论 -
KMP算法详细详解
前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。今天我在这里讲一讲我的一些理解,希望大家多多指教,如果有不清楚的或错误的请给我留转载 2013-12-17 15:18:13 · 1034 阅读 · 0 评论 -
大规模数据处理Bloom Filter C++代码实现
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”。为了避免形成“环”,就原创 2013-12-17 15:11:13 · 4137 阅读 · 0 评论