- 博客(13)
- 收藏
- 关注
原创 算法大作业 第三题
算法大作业 第三题 1. 问题 给定一个源串和目标串,能够对源串进行如下操作: 在任意位置上插入一个字符; 替换任意字符; 删除任意字符。 写一个程序,实现返回最小操作次数,使得对源串进行上述这些 操作后等于目标串(源串和目标串的长度都小于2000)。 2. 解析 该问题我想用动态规划解决 动态规划就是一步步来,先假设目标串只一个字符,两个…直至到真正的长度 开一个二维数组d[i][j]来记录a0-ai与b0-bj之间的编辑距离,要递推时,需要考虑对其中一个字符串的删除操作、插入操作和替换操作分别花费的开销
2021-06-22 13:40:29
249
原创 算法作业12 图的m着色问题
图的m着色问题 1. 问题 图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。 2. 解析 在填写每一个顶点的颜色时检查与相邻已填顶点的颜色是否相同。如果不同,则填上;如果相同(冲突),则另选一种;如果已没有颜色可供选择,则回溯到上一顶点。重复这一过程,直到所有顶点的颜色都已填上。 使用color[n],大小为n,n代表顶点,里面的值代表这个顶点放的是哪种颜色。 Trac
2021-06-21 23:45:16
191
原创 算法作业9 LCS算法和背包算法
LCS算法和背包算法 1. 问题 描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)] LCS算法和背包算法,特别要求举例时采用不同于讲义的数据进行推导。 最长公共子序列问题(Longest Common Subsequence,LCS),给定序列 X和Y,求 X 和 Y 的最长公共子序列 背包算法: 2. 解析 X=<A,B,C,D,A> Y=<B,A,C,B> m=0-5 n=0-4 (1)i=1 a) j=1 X.A<>Y.B:C[1,1]=
2021-06-21 22:05:48
166
原创 算法作业8 矩阵链乘法
矩阵链乘法 1. 问题 要求:矩阵链乘法,特别要求举例时采用不同于讲义的数据进行推导。 2. 解析 矩阵乘法次数的计算: 以两个矩阵相乘为例,A1*A2,A1和A2为两个矩阵,假设A1的行列数是p[i-1]*p[i],A2的行列数是p[i]p[j]。那么对于A1A2而言,我们需要分别执行p[i-1]*p[j]次对应A1的行元素乘以A2的列元素,根据线性代数知识,可以得到一共需要执行p[i-1]*p[i]*p[j]次乘法。 动态规划法 3. 设计 4. 分析 5. 源码 矩阵链乘 ...
2021-06-21 20:50:13
208
原创 作业11 最优前缀编码
LCS算法和背包算法 特别要求举例时采用不同于讲义的数据进行推导。 1. 问题 [描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)] 2. 解析 [问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档] 3. 设计 [核心伪代码] 4. 分析 [算法复杂度推导] 5. 源码 [github源码址 ...
2021-05-10 15:23:18
205
原创 算法作业2 用Floyd算法求各顶点之间的最短距离 Dijkstra算法求由顶点a到顶点h的最短路径
用Floyd算法求各顶点之间的最短距离 1. 问题 用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵) 2. 解析 Floyd算法: 通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。 从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);……;最后又用同样的公式由D(n-1)构造出矩阵D(n)。矩阵D(n)的i行j列元素便是i号顶点
2021-03-22 16:30:39
624
原创 算法作业3 两种检索算法
两种检索算法(顺序查找和二分查找) 1. 问题 写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。 2. 解析 顺序查找: 顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。 二分查找: 也称为是折半查找,属于有序查找算法。用给定值k先与中间结
2021-03-22 16:26:25
113
原创 算法作业 1.构造最小生成树( Prim算法和Kruskal算法)
构造最小生成树( Prim算法和Kruskal算法)1.问题1.采用Prim算法构造最小生成树2.采用Kruskal算法构造最小生成树2.解析1. Prim算法:2.Kruskal算法3.设计1.prim算法2.Kruskal算法功能快捷键4.分析(时间复杂度)1.prim算法2.Kruskal算法5.源码1.prim算法2.Kruskal算法 1.问题 1.采用Prim算法构造最小生成树 2.采用Kruskal算法构造最小生成树 2.解析 1. Prim算法: 输入:一个加权连通图,其中顶点集合为 V,边
2021-03-14 21:58:41
1160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人