Data Structures
约 1 分钟阅读
标签:数据结构
Prefix
hello,hat,havetrie
e - l - l - o
/
h - a - t
\
v - eradix
*
/
(ello)
/
* - h - * -(a) - * - (t) - *
\
(ve)
\
*Suffix
- 后缀数组
- stackoverflow.com/questions/9452701
- suffix trie
- 主要用于
- 判断 q 是否是 T 的子串
- 检查 q 是否是 T 的后缀
- 计算 q 在 T 中出现了几次
- 找到 T 中重复最长的段
- 找到 T 和 q 最长的公共子串
- 空间: 大约每个字符 20 byte,如果要索引的内容很多这个空间还是很大的
- O(n)
- 主要用于
- suffix array
- wikipediaWikipediaSuffix array
- 速度比 trie 慢,但是空间更小
- 基本思路
- 对所有后缀进行排序
- 将起始索引的后缀存储到数组
- 使用二分搜索
- O(n2 log n)
- www.cs.cmu.edu/~ckingsf/bioinfo-lectures/suffixtrees.pdf
- www.cs.cmu.edu/~ckingsf/bioinfo-lectures
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
Wikipedia2 条
- Suffix arrayWikipedia:Suffix array
- TrieWikipedia:Trie
其他外链5 条
- courses.cs.duke.edu/cps100/spring16/autocomplete/trie.htmlcourses.cs.duke.edu/cps100/spring16/autocomplete/trie.html
- courses.csail.mit.edu/6.851/spring12/lecturescourses.csail.mit.edu/6.851/spring12/lectures
- stackoverflow.com/questions/9452701stackoverflow.com/questions/9452701
- www.cs.cmu.edu/~ckingsf/bioinfo-lectureswww.cs.cmu.edu/~ckingsf/bioinfo-lectures
- www.cs.cmu.edu/~ckingsf/bioinfo-lectures/suffixtrees.pdfwww.cs.cmu.edu/~ckingsf/bioinfo-lectures/suffixtrees.pdf