![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习笔记
文章平均质量分 56
学习
Var_al
一半一半
展开
-
【Lua】排序算法分析与实现
常见排序算法时间与分析,直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序...使用lua实现原创 2022-03-23 11:38:59 · 346 阅读 · 0 评论 -
有向无环图——AOE网(关键路径)
有向无环图:无环的有向图,简称DAG图(Directed Acycline Graph)有向无环图常用来描述一个工程或系统的进行过程。(通常吧计划、施工、生产、程序流程等当成是一个工程)一个工程可以分为若干个 子工程,只要完成了这些子工程(活动),就可以导致整个工程的完成AOE网:关键路径用一个有向图表示一个工程的各子工程及其相互制约的关系,以弧表示活动,以顶点表示活动的开始或结束事件,称这种有向图为边表示活动的网,简称为AOE网(Activity On Edge)把工程计划表示为边表示活动的原创 2022-02-25 15:20:50 · 3468 阅读 · 0 评论 -
有向无环图——AOV网(拓扑排序)
有向无环图:无环的有向图,简称DAG图(Directed Acycline Graph)有向无环图常用来描述一个工程或系统的进行过程。(通常吧计划、施工、生产、程序流程等当成是一个工程)一个工程可以分为若干个 子工程,只要完成了这些子工程(活动),就可以导致整个工程的完成AOV网:拓扑排序用一个有向图表示一个工程的各子工程及其相互制约的关系,其中以顶点表示活动,弧表示活动之间的优先制约关系,称这种有向图为顶点表示活动的网,简称AOV网(Activity On Vertex network)A原创 2022-02-24 20:39:57 · 5000 阅读 · 0 评论 -
【c++】图的遍历-深度优先(DFS)与广度优先(BFS)算法分析与实现
图常用的遍历:深度优先遍历(Depth_Frist Search – DFS)广度优先遍历(Breadth_Frist Search – BFS)深度优先遍历(DFS)方法:在访问图中后以起始点v后,由v触发,访问他的任一邻接点w1,然后再从w2出发,进行类似的访问,…如此进行下去,直到到达所有的邻接顶点都被访问过顶点u位置。接着,退回一步,退到前一次访问过的顶点,看是否还有其他没有被访问的邻接顶点。如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问;如果没有,就原创 2022-02-21 10:04:47 · 1314 阅读 · 0 评论 -
【C++】图的构造算法-邻接表表示法
结构分析:算法思想:输入总顶点数和总边数建立顶点表,依次输入信息存于顶点表中,将每个顶点头节点的指针域初始化为NULL创建邻接表,依次输入边所依附的两个顶点,确定两个顶点的下标 i 和 j ,建立边结点,使用头插法分别差入 vi 和 vj 对应的边链表的头部存储表示:#define MaxInt 32767 // 极大值#define MVNum 100 // 最大定点数typedef int ArcType; // 边的权值类型typedef char原创 2022-02-19 11:33:11 · 1194 阅读 · 1 评论 -
【C++】图的构造算法-邻接矩阵表示法
结构分析:算法思想:输入总顶点数和总边数一次输入顶点休息存于顶点表初始化邻接矩阵,每个权值为极大值构造邻接矩阵存储表示:#define MaxInt 32767 // 极大值#define MVNum 100 // 最大定点数typedef char VerTexType;// 顶点数据类型typedef int ArcType; // 边的权值类型// 图的结构定义typedef struct{ VerTexType vexs[MVNum]原创 2022-02-19 11:19:14 · 926 阅读 · 0 评论 -
图的定义和术语
图:G = (V, E) Graph = (Vertex, Edge)V: 顶点(数据元素)的 有穷非空集合E: 边的有穷集合无向图:每条边都是无方向的有向图:每条边都是有方向的完全图:任意两个点都有一条边相连稀疏图:有很少边或弧的图(e<nlogn)稠密图:有较多边或弧的图权与网:途中边或弧所具有的相关数称为权,表明从一个顶点到另一个顶点的距离或耗费,带权图称为网邻 接:有边/弧相连的两个顶点之间的关系存在(Vi,Vj), 则称为Vi和Vj互为邻接点;存在&l原创 2022-02-15 11:22:34 · 112 阅读 · 0 评论 -
【Lua】创建哈夫曼编码算法实现
创建哈夫曼编码算法实现--创建哈夫曼编码算法--array - 哈夫曼树数组,n - 叶子结点数量--[[ array - 哈夫曼树数组结构 weight = 0--权重值 self.lch = 0--左孩子(数组中的下标) rch = 0--右孩子(数组中的下标) parent = 0--双亲(数组中的下标) ]]function HuffmanTree:CreatHuffmanCode(array, n) --哈夫曼编码 local huffmanC原创 2022-02-14 17:32:28 · 406 阅读 · 0 评论 -
字符串中不含有重复字符的 最长子串 的长度
题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度示例1:输入: s = “abcbcabd”长度: 4无重复字符的最长子串是 “cabd”,其长度为 4。示例2:输入: s = “pwwkew”长度: 3无重复字符的最长子串是 “kew”,其长度为 3。代码实现Luafunction this:LengthOfLongestSubstring(str) local table = {} for i = 1, string.len(str) do loc原创 2022-02-12 15:38:16 · 805 阅读 · 0 评论 -
【Lua】哈夫曼树构造算法的分析与实现
哈夫曼树构造算法分析1、哈夫曼树中权重越大的叶子离根越近,采用贪心算法构造哈夫曼树,首先选中权重值小的叶子结点进行构造2、步骤构造森林全是根:根据n个给定结点的权重值{W1, W2…Wn}构成 n 颗二叉树的森林F = {T1, T2…Tn},其中 Ti 只有一个带权重为 Wi 的根结点选用两小造新树:在F中选取两颗跟结点权重值最小的两颗树作为左右树构成新二叉树,此二叉树的权重值为左右树权重值之和删除两小添新树:在F中删除这两颗树,同时将新的到的二叉树添加到森林中重复23剩下单根:重复2、3步原创 2022-02-12 15:22:42 · 934 阅读 · 0 评论