数据结构与算法
文章平均质量分 76
分享所学,记录所学。
Aitee
立于皓月之边,不弱星光之势。
展开
-
【图论--搜索篇】宽度优先搜索,广度优先搜索
【代码】【图论--搜索篇】宽度优先搜索,广度优先搜索。原创 2024-01-23 18:11:48 · 624 阅读 · 1 评论 -
【蓝桥杯--图论】最小生成树prim、kruskal
【蓝桥杯--图论】最小生成树prim、kruskal。原创 2024-01-23 17:58:40 · 741 阅读 · 0 评论 -
【蓝桥杯--图论】Dijkstra、Ballman-Ford、Spfa、Floyd
如上所示即为做题时应对的方法。引用与稠密图,即m原创 2024-01-22 21:19:24 · 855 阅读 · 1 评论 -
[蓝桥杯刷题]合并区间、最长不连续子序列、最长不重复数组长度
使用fgets函数从标准输入中读取用户输入的字符串,并存储到str数组中。sizeof(str)确保不会超出数组的边界。原创 2023-12-15 21:39:19 · 581 阅读 · 16 评论 -
[蓝桥杯习题]———位运算、判断二进制1个数
位运算是指在二进制位级别上对数据进行操作的一种计算机运算方式。这种运算通常直接操作二进制位,通过一组针对位的操作符来完成。在许多计算机体系结构中,位运算是高效的,因为它们可以直接映射到底层的处理器指令。原创 2023-11-30 18:42:08 · 951 阅读 · 17 评论 -
Hash表
hello!这里是欧_aita的博客。每日一汤:不管你做什么,都要全心全意地投入其中。这是取得成功的秘诀。欧_aita数据结构与算法MySQL数据库。原创 2023-11-30 00:42:25 · 196 阅读 · 12 评论 -
[蓝桥杯训练]———高精度乘法、除法
在计算机科学中,高精度算法通常指的是处理超过计算机原生数据类型表示范围的数字的能力。例如,如果要处理非常大或非常小的整数或小数,可能需要使用高精度算法,因为标准的整数和浮点数类型的表示范围是有限的。通常存在两种1.大整数高精度2.浮点型高精度。原创 2023-11-25 20:25:13 · 781 阅读 · 40 评论 -
超详细讲解前缀和、二维前缀和、差分、二维差分
前缀和(Prefix Sum)是一种数组预处理技术,用于高效地计算数组中某个范围内元素的和。前缀和数组是原始数组的元素依次累加的结果。举个例子,s[]数组是表示b[]数组前缀和的数组,此时b[]数组就是s[]数组的差分数组。而b[i]=s[i]-s[i-1]。原创 2023-11-20 15:34:48 · 350 阅读 · 25 评论 -
超详细讲解快速排序(C++)
快速排序(QuickSort)是一种基于分治策略的排序算法,由英国计算机科学家 Tony Hoare 在1960年提出。它的基本思想是选择一个基准元素(pivot),将数组分成两个子数组,小于基准元素的放在左边,大于基准元素的放在右边,然后对这两个子数组分别进行快速排序。这个过程递归地进行下去,直到整个数组有序。原创 2023-11-17 19:22:20 · 324 阅读 · 26 评论 -
堆排序详细讲解(C++,默认生成小根堆)
堆排序是一种基于二叉堆数据结构的排序算法。它利用了堆的性质来实现对数组的原地排序。堆是一个特殊的树状数据结构,通常分为最大堆和最小堆。在最大堆中,每个节点的值都大于或等于其子节点的值,而在最小堆中,每个节点的值都小于或等于其子节点的值。原创 2023-11-15 13:30:57 · 351 阅读 · 24 评论 -
并查集个人理解(C++)
并查集(Disjoint Set)是一种数据结构,用于处理一些不交集的元素分组和查询问题。它主要支持两种操作:合并(Union): 将两个集合合并为一个集合。查找(Find): 确定一个元素属于哪个集合,通常通过找到集合的代表元素(也称为根节点)来实现。并查集通常由一个数组构成,每个元素指向另一个元素,表示其父节点或者所属集合的代表元素。这种数据结构通常用于解决一些元素分组的问题,如连通性问题,网络连接状态的判断等。原创 2023-11-14 17:23:08 · 187 阅读 · 18 评论 -
C++———trie树字典树个人解析
这是用到数组实现的,每个父节点最多都会有26个子节点,这分别对应了26个字母,在插入的过程之中会用到一个idx表示插入了多少个节点。比如根节点的子节点a为son[0][1]=1,然后通过索引1可以插入a的子节点son[1][2]=b的插入排序数字。u的作用是存储的字母的ASCII码值,判断在son[][]二维数组中存储在哪,也就是说会存储在son[][u]的位置,并且位置表示字母,数组里面存储的是索引,是用来查找下一个字母的。根节点是空节点,在实现字典树的过程中就像一个树。这道题可以使用字典树思想。原创 2023-11-12 11:15:49 · 245 阅读 · 11 评论 -
数据结构——图的深度遍历(邻接矩阵DFS)(无向图)
数据结构DFS原创 2023-10-07 23:36:51 · 856 阅读 · 3 评论 -
数据结构--迪杰斯特拉(Dijkstra)算法
迪杰斯特拉算法 ,建议收藏 ,反复观看。原创 2023-10-24 21:14:48 · 6792 阅读 · 7 评论 -
数据结构--克鲁斯卡尔(kruskal)算法(大话数据结构)
这里我们选用普里姆(prim)算法作为对比,prim算法是从一个顶点开始搜索最小路径,而克鲁斯卡尔算法是通过一个遍历好的边集数组搜索出一条最短路径。(最短路径的本质就是最小生成树。10065535# include # include # define MAXVEX 100 # define INFINITY 65535 //65535代表无穷大int begin;//记录边的起始顶点int end;//记录边的终点int weight;//记录边的权值。原创 2023-10-19 13:04:42 · 2497 阅读 · 1 评论 -
数据结构--prim算法
生成最小权值树,建议收藏原创 2023-10-09 21:15:13 · 97 阅读 · 3 评论 -
数据结构--广度优先搜索(邻接矩阵BFS)
如果说深度优先搜索是类似于树的前序遍历,而广度优先搜索类似于树的层序遍历。如图一所示,先建立一个普通的图,在转变成类似于树的格式。然后给每个顶点都赋予下标,可以看见有9个顶点,15条边。在代码中我们采队列来实现BFS。邻接矩阵的广度优先搜索。原创 2023-10-09 15:04:17 · 321 阅读 · 2 评论