![](https://img-blog.csdnimg.cn/1f1de7fb18b5403f97f0dfc2a44aa068.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
计算机基础 数据结构
Jason Yien
求道问术
展开
-
蛮力法/邻接表 广度优先 有向带权图 无向带权图
代码】蛮力法/邻接表广度优先有向带权图无向带权图。原创 2022-07-30 17:07:57 · 163 阅读 · 0 评论 -
蛮力法/邻接矩阵 广度优先 有向带权图 无向带权图
代码】蛮力法/邻接矩阵广度优先有向带权图无向带权图。原创 2022-07-30 16:51:52 · 260 阅读 · 0 评论 -
蛮力法/邻接矩阵 深度优先 有向带权图 无向带权图
* 深度优先 * 递归 * 递归出口:所有的点都访问了 * 递归体: * !递归这个点的所有邻接点有方向带权重图-邻接矩阵:- 出度看行- 入度看列无向带权图-邻接矩阵:- 对称阵- 主对角线上全为0..................原创 2022-06-04 21:51:41 · 391 阅读 · 0 评论 -
蛮力法/邻接表 深度优先 有向带权图 无向带权图
蛮力法/邻接表 深度优先 有向带权图 无向带权图原创 2022-06-10 17:44:24 · 287 阅读 · 0 评论 -
数据结构/图/最小生成树/kruskal 避圈法
idea:- 同一条路的两个端点同根则同圈- 使用并查集vset[]记录相连的顶点(下标和值),顶点自己和自己相连过程1. 从小到达排序所有边2. 选择最小的边,避开圈原创 2022-07-25 21:22:49 · 611 阅读 · 0 评论 -
数据结构/图/最小生成树/prim 加点法
prim算法加点法。原创 2022-07-25 17:51:36 · 151 阅读 · 0 评论 -
数据结构与算法
交集,并集,补集。原创 2022-07-25 17:48:29 · 206 阅读 · 0 评论 -
数据结构/树/最短路径/Dijkstra
* 最短路径 * 迪杰特斯拉算法 * 特点: * - dijkstra只能解决单源最短路径(单源点多终点最短路径问题) * - 时间复杂度O(n^2) * * 思想: * 动态规划 * 多态规划数组中,同行选择边最小的点,新旧两行比较(i->u->j...原创 2022-07-25 12:55:14 · 137 阅读 · 0 评论 -
数据结构/树/最短路径/Floyd
* 最短路径 * 弗洛伊德算法 * 是一种动态规划算法 * 动态规划数组 * 思想是:点i到点j经过k会不会更近一点 * 动态规划数组 * as[i][j]原创 2022-07-25 11:05:15 · 57 阅读 · 0 评论 -
字符串/模式匹配算法KMP
求解部分匹配值表模式串(ABCABD)原创 2022-07-20 16:52:35 · 165 阅读 · 0 评论 -
数据结构/栈/中缀表达式求值/简单表达式
原理两个栈:1个操作数栈(存储数字),1个运算符栈(存储运算符±*/)运算符优先级比较:只有待入栈运算符优先级高于栈顶运算符,才可以入栈;优先级等于或小于栈顶运算符,栈顶运算符需要出栈左括号(优先级最高遇到右括号)需要出栈到1个左括号(运算方式:运算结果=出栈操作数2 出栈运算符 出栈操作数1,将运算结果放回操作数栈代码...原创 2022-05-04 20:36:52 · 459 阅读 · 0 评论 -
数据结构/排序/分配排序/基数排序
原理时间复杂度:空间复杂度:稳定性:代码原创 2022-04-28 10:09:53 · 196 阅读 · 0 评论 -
数据结构/排序/分配排序/桶式排序
原理限制:这次写的算法只能适用于自然数,后期改进结构:输入数组转储为静态链表桶是队列结构过程:构建有序桶和数据静态链表根据记录值分配到不同桶中连接上下桶收集记录注意:桶是队列结构桶数量=记录的关键字可取值个数桶编号=记录的关键字可取值桶存储:数据静态链表key值相同的记录时间复杂度:O(n+m)O(n+m)O(n+m),分配时遍历数据静态链表,收集时遍历桶数组空间复杂度:O(m)O(m)O(m)以空间换时间,需要m个桶稳定性:稳定,同1个桶中相等记录次序不会改变原创 2022-03-27 21:13:31 · 938 阅读 · 0 评论 -
数据结构/排序/归并排序/二路归并排序
原理图解:一颗二叉树,叶子结点为单个记录,到最后1层后开始两两合并介绍二路归并排序子序列长度从1到n/2(把数组划分为2个子序列)从左往右一次比较2个子序列非递归实现子序列长度,h从1开始到?,作2倍变化2h子序列个数,根据剩余子序列的个数执行相应的操作(剩余子序列个数大于2;剩余子序列个数大于1小于2;剩余子序列个数小于1)记录个数,根据子序列中记录个数执行相应的操作(两个子序列中都有记录;子序列1中还有记录;子序列2中还有记录)递归实现:使用递归控制子序列的长度和个数记原创 2022-03-27 10:12:56 · 1613 阅读 · 0 评论 -
数据结构/排序/选择排序/堆排序
原理介绍:初始建堆(逆筛到根结点),重建堆(不断将堆顶元素放到数组后面)大根堆:堆顶元素r[0]是这个数组的最大值简单选择排序每一趟排序只让1个元素有序,剩余元素依旧无序;堆排序每一趟排序都让整个序列更加有序快速排序对原始序列的状态敏感,堆不敏感,这是堆对比相较于快速排序的唯一优点特点,大根堆-父节点大于左右孩子结点时间复杂度:O(nlog2n)O(nlog_2n)O(nlog2n)时间复杂度主要花费在初始建堆和重建堆初始建堆:共需逆序建堆n/2次,建堆最大需要比较log2nlog原创 2022-03-26 16:19:05 · 871 阅读 · 0 评论 -
数据结构/排序/选择排序/简单选择排序
原理介绍:原理:每趟排序记录最小记录的索引类比:猴子搬苞谷,喜欢更大的苞谷。猴子经过1排苞谷,每经过1个苞谷就与心中的苞谷对比,更大就记录当前苞谷的位置,走完这一排苞谷,心中的那个苞谷就是最大时间复杂度:不论任何情况比较次数不变最好情况:逆序O(n2)O(n^2)O(n2)移动次数为0比较次数为n-1趟*n-i次比较(i-第i趟)最坏情况:正序O(n2)O(n^2)O(n2)移动n-1次比较次数为n-1趟*n-i次比较(i-第i趟)空间复杂度1个idx记录苞谷位置的变量原创 2022-03-25 22:12:07 · 684 阅读 · 0 评论 -
数据结构/排序/交换排序/快速排序
原理原理:树形分区排序递归分区内比较交换返回轴值索引递归(根据轴值索引)进行左右分区划分》分区内左右索引对应值比较交换,索引相等时返回轴值索引轴值左分区数值< 轴值 <轴值右分区数值图解:树形分区时间复杂度最好情况:分区后左右分区记录数相等O(nlog2n)O(nlog_2n)O(nlog2n)分区后左右分区记录数相等共进行log2nlog_2nlog2n次分区划分,分区划分后比较分区中的所有记录,所以时间复杂度为n∗(log2n)为O(n2)时间复杂度为n*(log原创 2022-03-24 22:46:20 · 439 阅读 · 0 评论 -
数据结构/排序/交换排序/冒泡排序
原理介绍:时间复杂度:空间复杂度:稳定性:代码原创 2022-03-24 20:17:27 · 424 阅读 · 0 评论