8月16日学习总结

喜欢而已 提交于 2019-11-27 14:59:43

昨天学习了可持久化数据结构。

首先是前面学习的数据结构都是维护“数据集的最新状态”,而可持久化数据结构能够高效地记录一个数据结构的所有历史状态。

可持久化Trie的本质是一张有向图,把每次插入字符串后得到的新节点记录在数组root[1~4]中。那么在可持久化Trie中从root[i]出发能够问到的电和字符指针就组成了又前i个字符串构成的Trie。

如果基于数据结构的内部结构在操作过程中不发生变化,就出来了一种可持久化线段树。

可持久化线段树不再是一颗完全二叉树,所以不能在按层次编号,应该为直接记录每个节点的字左右子节点编号。可持久化线段树维护了每次操作之后线段树的历史形态,其查询操作和一般线段树类似,但难以支持大部分“区间修改”,所以不是我们应用的重点。

然后,又是“区间第k小数”这道题。我天,咋都喜欢研究它,那么多算法。

首先前面就应用过整体分治算法来解决过他它,现在又要用可持久化线段树来解决它,除此之外那,还有归并树以及线段树套平衡树(选择掌握)也可以解决。

我天,这一块的树可真多,做题时我的脑子啊。。

总之,这一章大致算看完了一遍,但我的脑子里第一遍只学会了每种数据结构的基本算法,对他们就相当于刚刚认识,差运用它们还有老远。啊啊啊。

所以这个星期六合周日,我要把这一章再缕一遍,学清楚它们的区别,联系,应用包括优化之类,不一定做这么全面,反正要第二遍认真思考题型一下。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!