![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法和数据结构
文章平均质量分 61
fuhohua
这个作者很懒,什么都没留下…
展开
-
线段树简介
是一个二叉树,用于求出数组中一段数的和(前缀和)、给某个位置的数加上一个数、求一段区间的最大值支持的操作:单点修改、区间查询时间复杂度:修改和查询都是Olognpushup(u):用子节点的信息来更新当前节点信息build(u, l, r):在一段区间上初始化线段树, u表示根结点,l表示左边界,r表示右边界modify(u, l, r):单点修改, u当前节点的编号,x要修改的位置,v要修改的值。原创 2024-03-18 19:05:52 · 1075 阅读 · 0 评论 -
归并排序和快速排序
开一个临时数组tmp,指针i指向数组p,指针j指向数组q,比较p[i]和q[j],谁小就把元素放到数据tmp(从小到大排序),然后指针向后移,继续比较…2、调整区间,以L[l]为基准,使得所有=L[l]的元素都在L[l]的右边。1、随机确定分界点,比如:L[l]、L[(l+r)/2]、L[r]1.将数组分割为2个局部数组,每个数组长度为n/2。基于分治法,需要递归,每次递归时需要找一个枢轴。快速排序是不稳定排序算法。归并排序是稳定排序算法。原创 2024-03-15 17:33:07 · 335 阅读 · 1 评论 -
闫氏DP求解01背包问题
/ 物品数量 和 背包容积int N, V;// 每个物品体积 和 价值// dp数组int main()i原创 2024-03-13 16:43:15 · 1008 阅读 · 0 评论 -
试除法判定质数
因此判断一个数为质数时,只需判断较小的那个数能否整除n即可,即只需枚举d原创 2023-11-29 11:31:30 · 180 阅读 · 1 评论 -
朴素版Dijkstra和堆优化版Dijkstra算法
1号点的距离初始化为零,其他点初始化成无穷大:dist[1]=0 dist[other]=+∞。遍历dist数组 找到一个没有确定最短路径的点state[j]=false,且该点距离源点最近。循环:每次循环都能确定一个点的最短距离,循环n次,求出每一个点到起点的最短距离。初始化state数组(state数组保存所有点的 已确定的最短距离)判断从1走到x和从1走到t再走到x的距离,如果比较短,就更新x的距离。朴素版中,每次循环都要遍历dist数组,找到距离源点最近的点t。用t更新他指向的其他点x的距离。原创 2023-12-22 10:32:03 · 1173 阅读 · 0 评论 -
spfa算法
把1号点加入到队列(对列里边存的是所有距离变小了的节点编号)SPFA只要不是负环就能用,一般用于求单源最短路问题。该算法是对Bellman-Ford优化。时间复杂度:O(m)2.遍历t的所有出边。原创 2023-12-22 11:01:12 · 374 阅读 · 0 评论 -
一维前缀和和二维前缀和
黄色部分面积=蓝色部分面积s[3][3]-橙色部分面积s[3][1]-粉色部分面积s[1][3]+灰色部分面积s[1][1] (灰色部分被减了两次所以要加回来)二维前缀和数组[2][2] = 17,它是原二维数组左上角(1,1)到右下角(2,2)所有数的和。等于原数组中蓝色部分+紫色部分-黄色部分+灰色部分。由容斥原理计算二维前缀和数组s[2][3]紫色部分=前缀和数组s[1][3]的值。蓝色部分=前缀和数组s[2][2]的值。黄色部分=前缀和数组s[1][2]的值。灰色部分=原数组a[2][3]的值。原创 2024-03-10 21:02:51 · 1779 阅读 · 1 评论 -
2 算法简介
定义:描述求解某个问题的步骤(计算机指令)原创 2023-11-29 10:24:22 · 20 阅读 · 1 评论 -
1 数据结构简介和分类
定义按照一定规则,操作元素的,集合作用描述在计算机中数据元素的排列方式,强调数据元素之间的关系,是数据的逻辑结构基本术语数据:可以输入到计算机中,能被计算机程序处理的符号 数字、字符、声音、图像等数据对象:具有相同性质的数据元素的集合,是数据的子集数据元素:组成数据的基本单位,在计算机中作为整体处理,一个数据元素由若干个数据项组成例如:在人类中,组成人类的数据元素是人数据项:数据项是数据不可分割的最小单位例如:数据元素人,有年龄,名字,性别这些数据项。原创 2023-11-29 10:20:09 · 42 阅读 · 1 评论