
《算法训练营》笔记
文章平均质量分 82
以《算法训练营》这本书为路线进行的总结
Shanhj
无
展开
-
五、平衡二叉树——伸展树Splay
treep 伸展树 由于数据存在局部性原理,刚刚访问过的数据有很大可能在短时间内被再次访问,其相邻结点被访问的可能性也会提高。为了提高局部性查询的效率,伸展树诞生了。 伸展树的原理 伸展树在每次查询完一个数据后就将该数据对应的结点旋转至树根,在旋转的同时保持树的搜索性不变(中序遍历不变)。于是下次在查询相同的数据或是相邻的数据时,时间就会大大缩短。 伸展树在总体上的均摊效率为O(logn),m次查询的复杂度为O(mlogn) 实现细节 由于无需保持整棵树的平衡,伸展树的结点只需要记录左右子树和父结点的信息即原创 2022-07-27 10:33:52 · 376 阅读 · 0 评论 -
三、字符串处理
字典树-Trie树 解释 就是一棵有26个子节点的树,将一个单词转换为树上的一条路径,如果某个结点是单词的最后一个字母,需要对该结点做一个end标记。 以下是图例,看这个图大概就能明白字典树是如何建立的了。 字典树的优点是减少了重复的前缀比较,可以用很高的效率来查找一个单词库中是否含有某个单词。 对于建树的方式,建议使用固定数组来代替动态内存分配,这样在速度上比较快,否则大部分题目光是建树可能就会超时了。 由于字典树比较简单,直接在题目中来体现建树和查找的方式。 poj2503 字典树简单应用 由于本题的原创 2022-03-24 19:51:22 · 199 阅读 · 0 评论 -
二、区间信息维护与查询
# 倍增、ST、RMQ # LCA原创 2022-03-05 17:22:31 · 379 阅读 · 0 评论 -
一、实用数据结构
主要知识点:并查集、优先队列原创 2022-03-03 16:38:32 · 544 阅读 · 0 评论