04 2022 档案

摘要:Prim算法(最小生成树)首先给出子图的定义: 子图: 设G = <V, E>,G' = <V', E'>为两个图(同为无向图or有向图), 如果V' ⊆ V && E' ⊆ E,则称G'为G的子图,G称为G'的母图,记作G' ⊆ G。 如果V' = V,则称G' 为 G 的生成子图(用到了所有的点 但不一定用到所有的边的子 阅读全文
posted @ 2022-04-30 20:12 Conqueror712 阅读(301) 评论(0) 推荐(0) 编辑
摘要:Djikstra算法Dijkstra算法: Dijkstra算法常用于求无负权边中的最短路, 在优化后有比Bellman-Ford算法优秀很多的时间复杂度。 同样的,我们引入记号: G = <V,E>代表一个简单有向图(简单图:没有重边和自环) n = |V|代表顶点数 m = |E|代表边数 l(u,v)代表u到v的 阅读全文
posted @ 2022-04-24 10:10 Conqueror712 阅读(139) 评论(0) 推荐(0) 编辑
摘要:最短路算法入门(Bellman-Ford算法)前置: 对于无向图中的一条边(u↔v),可以看作有向图中两条边(u→v)and(v→u)的结合。 我们可以通过这种方式把无向图转化为有向图, 从而使用有向图的最短路算法。 图的一些记号: G = <V,E>代表一个简单有向图(简单图:没有重边和自环) n = |V|代表顶点数 m = |E|代表边数 阅读全文
posted @ 2022-04-16 15:04 Conqueror712 阅读(100) 评论(0) 推荐(0) 编辑
摘要:Heap堆的基本功能数组实现众所周知,堆是一种很好用的数据结构,是基于完全二叉树的。 1 //堆的数组实现 2 const int Maxsize = 10000; 3 int len = 0; //记录当前size 4 int heap[Maxsize+1]; 5 6 //当然也可以用vector实现 7 vector <i 阅读全文
posted @ 2022-04-13 23:50 Conqueror712 阅读(46) 评论(0) 推荐(0) 编辑
摘要:Backpack_Problem背包问题背包问题入门篇 首先当然是我们最熟悉的01背包啦! 最简单的想法是,二维dp数组,不考虑其他的优化。 状态: dp[i][j] 表示取第 i 个物品,总体积为 j 时候的情况。 那么我们就会获得两种转移情况,对于下一个物品。一种是取了,一种是没取。 于是我们获得了状态转移方程: dp[i][j] = 阅读全文
posted @ 2022-04-06 10:25 Conqueror712 阅读(39) 评论(0) 推荐(0) 编辑
摘要:二叉树入门简析给出一些二叉树的入门级(确信)使用方法: 1 //用递归的方式建立一个完全二叉树 2 void Bulid(int t){ 3 UpdateData(t); //添加数据 4 Build(t + t); //如果子节点存在 5 Build(t + t + 1); 6 //用这种方法建立非完全二叉树 阅读全文
posted @ 2022-04-05 18:27 Conqueror712 阅读(24) 评论(0) 推荐(0) 编辑
摘要:List链表的基本功能结构体实现这里直接以插入排序和归并排序的代码来介绍单向链表: 1 //结构体实现链表 插入排序 2 struct Node{ 3 int value; 4 Node *next; 5 //Node *prev; //双向链表 6 Node *head = NULL; //NULL表示一个空节点,实际上是一个定 阅读全文
posted @ 2022-04-01 16:08 Conqueror712 阅读(52) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示