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