标签「算法」下的文章

bjmayor发布于2021-08-29

Trie树,前缀树

[TOC]

trie树,又叫前缀匹配树,适合做自动补全 和 敏感词过滤。它的key都为字符串,能做到高效查询和插入,时间复杂度为O(k),k为字符串长度,缺点是如果大量字符串没有共同前缀时很耗内存。

它的核心思想就是通过最大限度地减少无谓的字符串比较,使得查询高效率,即「用空间换时间」,再利用共同前缀来提高查询效率。

阅读全文»

bjmayor发布于2021-08-29

时间轮算法

[TOC]

时间轮算法。目前的定时任务基本都是基于这个思想实现的。

基本思想

1b80c724801c46f0b5e89c14adf2fadf-image.png

如上图中所示,我只需要把任务放到它需要被执行的时刻,然后等着时针转到这个时刻时,取出该时刻放置的任务,执行就可以了。 这就是时间轮算法最核心的思想了。

什么?时针怎么转? while-true-sleep 下面让我们一点一点增加复杂度。

阅读全文»