算法分析与设计作业
xxxibolva
这个作者很懒,什么都没留下…
展开
-
《算法分析与设计》大作业——圆排列问题(回溯法)
1.问题圆排列问题:给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。问题描述:给定n个大小不等的圆c1,c2,…,cn,现要将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例如,当n=3,且所给的3个圆的半径分别为1,1,2时,这3个圆的最小长度的圆排列如图所示。其最小长度为。2.解析2.1小插曲刚开始没搞懂题目啥意思,就去search了一下,然后看到了如下让我怀疑自己数学的式子原创 2020-06-11 10:57:52 · 4192 阅读 · 2 评论 -
《算法分析与设计》作业12----图的m着色问题(回溯法)
目录1.问题2.解析3.设计4.分析5.源码1.问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。第一行是顶点的个数n(2≤n≤10),颜色数m(1≤m≤n)。接下来是顶点之间的相互关系:a b表示a和b相邻。当a,b同时为0时表示输入结束。2.解析使用回溯法,具体步骤是将cur=1传入backtrack(),即从第一个开.原创 2020-05-31 22:23:54 · 1206 阅读 · 0 评论 -
《算法分析与设计》作业11----最优前缀码(贪心法——哈夫曼编码)
1.问题2.解析哈夫曼编码左为0,右为1算错了占坑3.设计4.分析4.源码GitHub地址原创 2020-05-13 16:02:01 · 765 阅读 · 0 评论 -
《算法分析与设计》作业10----相容问题(贪心法)
目录1.问题2.解析3.设计4.分析5.源码1.问题2.解析实例稍等3.设计struct node { int s, f;}t[maxn], ans[maxn];//t数组存储初始时间,ans存储使活动数量最多的时间安排int main() { input; 按截止时间f从小到大排序; k = 1; ans[1] = t[...原创 2020-05-03 21:14:05 · 434 阅读 · 0 评论 -
《算法分析与设计》作业9----最长公共子序列LCS
目录1.问题2.解析3.设计4.分析5.源码1.问题2.解析举例如下:3.设计3.1算法3.2实例桥豆麻袋4.分析两重循环,故时间复杂度为O(mn)5.源码GitHub地址...原创 2020-04-21 22:36:44 · 532 阅读 · 0 评论 -
《算法分析与设计》作业8----矩阵链乘法(动态规划)
目录1.问题2.解析3.设计4.分析5.源码1.问题 给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。例如,P=<10,20,30,40>,则A1:10×20,A2:20×30,A3:30×40,有两种结合次序1)(A1A2)A3:10×20×30+10×30×40=180002)A1(A2A3):10×20...原创 2020-04-15 16:45:04 · 798 阅读 · 0 评论 -
《算法分析与设计》作业7----投资问题(动态规划)
1.问题一般性描述设有m万元钱,n项投资,函数fi(x)表示将x万元投入第i项项目所产生的效益,i=1,2,…,n.问:如何分配这m元钱,使得投资的总效益最高?样例: 2.解析3.设计4.分析5.源码GitHub地址...原创 2020-04-07 20:43:47 · 1452 阅读 · 1 评论 -
《算法分析与设计》作业6----选第k小元素(特定分治策略)
1.问题选择问题:设L是n个元素的集合,从L中选取第k小的元素,其中1<=k<=n。这里第k小的元素是指,当L按从小到大排好序之后,排在第k个位置的元素。利用特定分治策略选出第k小的元素。2.解析3.设计void select(vector<int>s,int n,int k){ 把s划分成最多5个一组,共n/5组(向上...原创 2020-04-05 21:13:08 · 1250 阅读 · 0 评论 -
《算法分析与设计》作业5----最近点对问题(分治策略)
1.问题P为笛卡尔平面上n>1个点构成的集合,求最近的两个点的距离(n=2k)2.解析思路一(蛮力算法)求两点最短距离最直观的方法就是蛮力算法两层循环遍历两点的所有可能组合,记录最短的距离但复杂度过高(O(n2)),效率较低思路二(分治策略)把点集P按x轴坐标升序排序,复制点集P为Q,把Q按y轴坐标升序排序2<=n<=3时,采用蛮力...原创 2020-03-24 21:48:28 · 1099 阅读 · 0 评论 -
《算法分析与设计》作业4----二分归并排序算法
目录1.问题2.解析3.设计4.分析5.源码1.问题利用二分归并排序对n个不同的数构成的数组a[1..n]进行排序,其中n=2^k2.解析二分归并排序分为两步:二分+归并,体现了分治思想即先使每个子序列有序,再使其合成的序列有序因此为实现这个算法需要写两个函数,用于二分和归并当数组a[9] = { 0,5,9,6,3,5,2,7,1 },且要求升...原创 2020-03-21 15:40:41 · 1378 阅读 · 0 评论 -
《算法分析与设计》作业3----顺序查找和二分查找
1.问题 在一个排好序的数组a[1...n]中查找x,如果x在T中,输出x在a的下标i;如果x不在a中,输出i=0。2.解析 数据为数组存储,且有序,所以可以采用顺序查找和二分查找。顺序查找(Sequential Search) 按照数组下标从小到大或从大到小遍历数组元素,找到第一个与目标值相等的元素就结束查找。二分查找(Binary Search)...原创 2020-03-10 20:15:41 · 364 阅读 · 0 评论 -
《算法分析与设计》作业2----最短路的Floyd算法和Dijkstra算法
1.问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)。对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。2.解析Floyd算法原理:Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法。推导:1)只允许两点直达,用矩阵列出各顶点间的直达距离(不允许经过第...原创 2020-03-07 13:34:36 · 369 阅读 · 0 评论 -
《算法分析与设计》作业1----最小生成树的Prim算法和Kruskal算法
Prim算法和Kruskal算法构造最小生成树1. Prim算法2. Kruskal算法原创 2020-02-26 13:38:37 · 823 阅读 · 0 评论