数据结构与算法
文章平均质量分 68
looox007
这个作者很懒,什么都没留下…
展开
-
简述树状数组
对于大小为nnn的序列numsnumsnums,最基本的树状数组以OlognO(logn)Ologn时间复杂度同时支持如下两种操作。更新numsnumsnums中单个元素的值,即单点修改。求numsnumsnums任意区间的元素值之和,即区间查询。无论使用普通数组还是利用前缀和数组,对于上述两种操作,均有一种的时间复杂度为OnO(n)On。而树状数组通过维护一个与numsnumsnums。原创 2023-11-15 21:50:11 · 37 阅读 · 0 评论 -
二分查找总结
三种区间:闭区间 [ ]开区间 ( )半闭半开区间 [ ),( ]例题:返回有序数组中第一个 ≥ 8的数的位置。如果所有数都 <8,返回数组长度。闭区间 [ ]做法L = 0R = n - 1。原创 2023-09-07 16:30:24 · 67 阅读 · 0 评论 -
数据结构——并查集
并查集 1. 概论 定义: 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说,我们可以用并查集来判断一个森林中有几棵树、某个节点是否属于某棵树等。 主要构成: 并查集主要由一个整型数组pre[ ]和两个函数**find( )、join( )**构成。 数组 pre[ ] 记录了每个点的前驱节点是谁,函数 find(x) 用于查找指定节点 x 属于哪个集合,函数 join(x,y) 用于合并两个节点 x 和 y 。 作用: 并查集的主要作用是求连通分支数(如果一个图原创 2022-05-12 16:41:39 · 192 阅读 · 0 评论 -
二叉树的三种遍历方式
二叉树的三种遍历方式 先序遍历:按照根节点->左子树->右子树的顺序访问二叉树 中序遍历:按照左子树->根节点->右子树的顺序访问 后序遍历:按照左子树->右子树–>根节点的顺序访问 已知先序,中序,求后序 #include<iostream> #include<cstring> using namespace std; string a,b; void work(int al,int ar,int bl,int br){ int原创 2022-05-12 16:39:42 · 363 阅读 · 0 评论