![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高级数据结构
文章平均质量分 87
L_Hygen
这个作者很懒,什么都没留下…
展开
-
C++数据结构与算法分析——并查集
并查集介绍并查集是一种树形的数据结构,用来表示不相交集合。每棵树都代表一个不同的集合,树中的每个节点都是集合中的一个元素。每个节点都有一颗指向父节点的指针p,而根节点的p指针则指向自己。操作get/find : 查询集合a属于哪个集合merge : 合并两个集合如何实现这两个操作首先我们可以看到有两个集合root1和root2,我们仔细观察很容易发现一棵树中的根节点最特殊,因为它的父节点指针指向自己,而且所有节点的父节点指针只要一直指下去必然会指到根节点。因此我们发现,要判断集合a属于哪原创 2021-09-12 14:52:42 · 310 阅读 · 0 评论 -
C++数据结构与算法分析——树状数组
树状数组介绍我们此前已经了解过前缀和与差分,在数组中,求前缀和的时间复杂度为O(n)O(n)O(n),查询元素的时间复杂度为O(1)O(1)O(1)。在前缀和数组中,求前缀和的时间复杂度为O(1)O(1)O(1),查询元素的时间复杂度为O(n)O(n)O(n),这两种数组的时间复杂度都是根据其最高的时间复杂度来确定的,即O(n)O(n)O(n),那么有没有可能采取一个折衷的办法让修改和查询操作都不至于那么慢呢?树状数组出现了。树状数组是一种高级数据结构,它主要支持两种操作:快速修改数组中的一个数a原创 2021-08-26 16:50:41 · 150 阅读 · 0 评论