数据结构和算法
文章平均质量分 80
蓝虎 - tanjp.com
Seeking a way to achieve my childhood dream! Concentration? Innovation? Solidarity? Goodness?
Design Simple, Graceful, High Efficiency and Excellence Code. http://www.tanjp.com
展开
-
屏蔽词、模糊检索实现—字典树的应用
原文转载:http://www.tanjp.com/archives/90(即时修正和更新) 屏蔽词、模糊检索实现—字典树的应用 名词简述 屏蔽词,就是预先给定一些词汇,在整个产品中都不能有这些词汇出现,譬如文字聊天,用户名,帮派名等等,反正所有涉及到文字输入的地方都需要过滤这些屏蔽词。在项目中,屏蔽词功能基本上是必须的,要不然上线都没法通过版署的审核。 模糊检索,其实这是一大块专业领域...原创 2017-04-13 13:46:06 · 1527 阅读 · 0 评论 -
非严格优先队列-O(1) 时间复杂度
原文转自:http://www.tanjp.com/archives/124(即时修正和更新) 分组安全队列 - 非严格优先队列 O(1) 时间复杂度 传统的优先队列,都是采用二叉树(堆)的方式来实现,插入和删除都需要维护堆顶元素最大或最小,需要O(logN)的时间复杂度。在某些多线程环境下,把队列当作一个数据交换的纽带,这种开销也是非常大的,于是设计了非严格的优先队列,基满足业务需求...原创 2019-04-11 15:41:47 · 1173 阅读 · 0 评论 -
全局唯一标识(UID)-多种实现方案
原文转自:http://www.tanjp.com/archives/132(即时修正和更新) 目录 64位全局唯一标识 62进制字符串唯一ID 32位唯一ID(一年(388天)内的每秒内有128个唯一值) 32位唯一ID(一个月(48天)内的每秒内有1024个唯一值) 32位唯一ID(一周(12天)内的每秒内有4096个唯一值) 64位全局唯一标识 snowflake是用64位...原创 2019-04-12 23:39:45 · 2717 阅读 · 0 评论 -
时间轮(Timing Wheel)算法-高性能定时器策略笔记
原文转自:http://www.tanjp.com/archives/199(即时修正和更新) 什么时候需要定时器? 我们都知道程序是能快速运算出结果,几乎在一瞬间就可以把结果算出来。但是这个前提是所有输入条件都拿到手的情况下,如果有些输入条件 A 你并不知道什么时候能符合,那怎么办?写一个whlie循环一直检查?这样无疑很浪费CPU,显然行不通。 有经验程序员可以已经想到办法,把这...原创 2019-05-17 20:58:28 · 4067 阅读 · 0 评论