算法设计与分析
Mr成文
加油呀
展开
-
【算法分析与设计】最小生成树Kruskal算法和Prim算法
一、理论知识1、 优先队列特点:插入元素和查找最值时间复杂度都是log(n)。实现思路:使用完全二叉树,所有操作保证父节点大于子节点(仅父子节点大小关系,没有其他要求),这样最大值就是树根。具体细节:由于父节点必须大于子节点,所以在插入或者删除的时候要进行顺序调整,调整方法如下:插入时,直接把元素插到数组最后一个位置,这样在树中也就是最下层的最右叶节点(图右上1)。然后比较叶节点和...原创 2018-11-15 16:05:59 · 2124 阅读 · 3 评论 -
【算法设计与分析】最短路径算法总结
目前掌握的最短路算法有以下几种。Dijkstra算法广度优先搜索算法(BFS)贪心最好优先搜索算法(Greedy Best First Search)。A*算法。2-hop算法(未掌握)。bellman-ford算法。floyd-warshall算法。...原创 2019-04-07 11:36:43 · 949 阅读 · 0 评论 -
【算法设计与分析】拓扑排序和强连通图
文章目录一、实验内容二、理论准备三、实验环境四、实验过程五、实验结果六、实验总结实验代码(github)一、实验内容这次实验是在上次实验的基础上完成的,也就是说他们存储图的方式是相同的,所以下面的报告内容我会着重解释拓扑排序的具体实现,以及强连通图的实现。实验结果测试用图:期望得到的结果:拓扑排序: 1->5->2->4-&am原创 2019-01-02 20:00:42 · 3441 阅读 · 0 评论 -
【算法设计与分析】广度优先搜索、深度优先搜索
文章目录一、实验内容二、理论准备1、BFS2、DFS三、实验环境四、实验过程五、实验结果六、实验总结一、实验内容实现广度优先搜索(BFS)和深度优先搜索(DFS)用下面的图进行测试预期结果:从1号顶点开始BFS:1->2->5-&amp原创 2019-01-02 16:23:52 · 978 阅读 · 0 评论 -
【算法设计与分析】dijkstra算法和prim算法有什么不同
这里默认大家对两个算法过程相对比较熟悉,所以直接给出伪代码。如果大家对这两个算法不是很了解可以先看下我的这两篇博客dijkstra算法求最短路径prim算法求最小生成树dijkstra算法是求最短路径的,而prim算法是求最小生成树的,这两个算法怎么能说有什么不同呢?其实对这两个算法有了解的同学比较清楚,他们两个非常相似。伪代码如下:dijkstra:prim请大家注意看伪代...原创 2019-01-11 11:04:59 · 763 阅读 · 0 评论 -
【算法设计与分析】最大流算法ford-fulkerson方法
文章目录一、实验内容二、理论准备三、实验环境四、实验过程五、实验结果六、实验总结实验代码(github)一、实验内容实现最大流算法ford-fulkerson。测试用图预期结果:最大流为19二、理论准备核心思想:构建一个残余网络,然后在残余网络中任选一条能够从原点到汇点的路径,并修改残余网络,直到没有路径能够到达汇点。残余网络的一个优点是,可以给网络流悔过的机会,为了总流量...原创 2019-01-04 16:56:01 · 1232 阅读 · 0 评论 -
【算法设计与分析】Floyd-Warshall算法求任意两点间最短路径
文章目录一、实验内容二、理论准备三、实验环境四、实验过程五、实验结果六、实验总结实验代码(github)一、实验内容实现Floyd-Warshall算法求解任意两点之间的最短路径。测试用图预期输出二、理论准备三、实验环境操作系统及版本:windows10编译软件及版本:g++6.3.0使用的计算机语言:c++语言四、实验过程由于这次需要使用邻接矩阵来存储,所...原创 2019-01-04 13:37:36 · 780 阅读 · 0 评论 -
【算法设计与分析】最短路径dijkstra算法和bellman-ford算法
文章目录一、实验内容1、 Dijkstra算法求最短路径。2、Bellman-ford算法求最短路径二、理论准备1、 Dijkstra算法2、bellman-ford算法3、 两个算法的使用环境。三、实验环境四、实验过程1、Dijkstra算法2、bellman-ford算法五、实验结果六、实验总结实验代码(github)一、实验内容1、 Dijkstra算法求最短路径。测试用图预期...原创 2019-01-03 20:57:42 · 4084 阅读 · 0 评论 -
【算法设计与分析】fibonacci的动态规划实现
思路:动态规划就是用空间换取时间的一种想法,他把每个子问题的解存放下来,要使用某个子问题的解的时候,先去查看之前有没有算过,有算过就直接拿过来用,没有算过在进行计算,这样就避免了递归中重复计算相同问题解的过程。1、伪码2、代码#include <iostream>#include <memory.h>using namespace std;int* M =...原创 2019-01-03 19:17:42 · 653 阅读 · 0 评论 -
【算法设计与分析】KMP算法
俗称看毛片算法#include <iostream>#include <string>using namespace std;/* P 为模式串,下标从 0 开始 */void GetNext(string P, int next[]){ int p_len = P.size(); int i = 0; // P 的下标 in...原创 2019-09-18 15:34:29 · 339 阅读 · 0 评论