随笔分类 -  算法分析作业

摘要:1. 问题 图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。 2. 解析 3. 设计 核心代码: bool check(int t) {//判断是否能往下涂色 for 阅读全文
posted @ 2021-05-31 17:15 JamZF 阅读(92) 评论(0) 推荐(0)
摘要:1. 问题 给定字符集 和每个字符的频率 ,求关于 C 的一个最优前缀码。 2. 解析 构造最优前缀码的贪心算法就是哈夫曼算法(Huffman) 3. 设计 1.n<-|C| 2.Q<-C //按频率递增构成队列 Q 3.for i<-1 to n-1 do 4. z<-Allocate-Node( 阅读全文
posted @ 2021-05-24 20:45 JamZF 阅读(82) 评论(0) 推荐(0)
摘要:1. 问题 2. 解析 3. 设计 sort(w+1,w+1+n); int cnt=1; for(int i=1;i<=n;i++){ if(suma+w[i]<=c1){ a[cnt++]=w[i]; suma+=w[i]; } } if(sum-suma>c2){ puts("NO solut 阅读全文
posted @ 2021-05-17 16:10 JamZF 阅读(62) 评论(0) 推荐(0)
摘要:1. 问题 LSC:求两串最长相同的子串 0/1背包:V体积的背包,有N个物品 ,每个物品都有自己的体积和重量,问该背包能装的最大质量。 2. 解析 LCS: X :ABCBDAB Y :BDCABA //求表和长度 (1):i=1 j=1 X.A!=Y.B :dp[1][1]=max(dp[1][ 阅读全文
posted @ 2021-05-10 22:49 JamZF 阅读(74) 评论(0) 推荐(0)
摘要:1. 问题 2. 解析 3. 设计 4. 分析 复杂度分析:O(n^3)。 5. 源码 [github源码地址] github.com/xiaojunjun601/sfHomework1.git 阅读全文
posted @ 2021-04-26 22:46 JamZF 阅读(66) 评论(0) 推荐(0)
摘要:1. 问题 设 m 万元钱,n 项投资,函数 表示将 x 万元投入第 i 项项目所产生的效益,i=1,2,…,n.问:如何分配这 m 元钱,使得投资的总效益最高? 2. 解析 3. 设计 4. 分析 5. 源码 https://github.com/xiaojunjun601/sfHomework1 阅读全文
posted @ 2021-04-25 22:52 JamZF 阅读(59) 评论(0) 推荐(0)
摘要:1. 问题 求一个数组中第K小的元素。 2. 解析 3. 设计 核心代码: 1 int select(int num[],int p,int r,int k){ 2 int len=r-p+1; 3 //当前小于等于五个元素直接排序求第k小 4 if(len<=5){ 5 sort(num,num+ 阅读全文
posted @ 2021-04-19 17:50 JamZF 阅读(98) 评论(0) 推荐(0)
摘要:1. 问题 在二维平面中给出N个点的坐标,求其中最近点对的距离 2. 解析 方法一:暴力法,对每个点都和(n-1)个点判断,不断求最小距离。 方法二:分治法,我们将平面上N个点的集合分成两个子集s1和s2,每个子集约N/2个点,然后在每个子集中递归地求最接近的点对。 3.核心伪代码 蛮力法: dou 阅读全文
posted @ 2021-04-12 16:39 JamZF 阅读(101) 评论(0) 推荐(0)
摘要:1. 问题 对n个不同的数构成的数组A[1..n]进行排序,其中n=2^k,要求用归并排序进行排序。 2. 解析 归并排序:当我们要对数组进行排序的时候,我们首先把这个数组分成一半,然后就是对左边的数组和右边的数组分别进行排序,之后将他们合并起来,然而对左右两边数组进行排序的时候要用到分治的思想,对 阅读全文
posted @ 2021-03-29 16:12 JamZF 阅读(46) 评论(0) 推荐(0)
摘要:1. 问题 在一个排好序的数组T[1..n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0。 2. 解析 暴力查找法:从1-n循环查找x是否出现在数组中。 折半查找法:每次缩小查找的范围,最开始l=0,r=n,mid=(l+r)>>1,如果当前位置值大于x那么就往右边缩小范围 阅读全文
posted @ 2021-03-22 15:53 JamZF 阅读(60) 评论(0) 推荐(0)
摘要:1. 问题 给你一个N个节点M条边的无向图,每条边有一条权值。求改图的最小生成树的过程和权值。 2. 解析 求最小生成树有两种贪心算法prim和kruskal 。Prim算法是以点为核心记录起点到其他点的距离,每一步都是取图中还没有加入到最小生成树中距离最短的点加入到最小生成树种不断更新。 Krus 阅读全文
posted @ 2021-03-08 23:21 JamZF 阅读(77) 评论(0) 推荐(0)