自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 算法分析与设计实践大作业

1. 问题圆排列问题:给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。2. 解析首先,已知圆的个数n以及记录各圆半径的数组r[i],i=1~n ,记录各圆圆心横坐标的数组x[i],i=1~n。要记录最短排列长度minlen,最终求出排列顺序。要注意,只要大小合适,目标圆就有可能与排列中的任意一个圆相切。要求x[n]时,要从前往后的一一比较,先得到x[1]+a1的值,再得到x[2]+a2的值……一直到x[n-1]+an-1的值,与上一次的值相比较,若距离更大则更

2020-06-15 23:00:07 1718 1

原创 算法分析与设计实践-作业13-读书笔记

《算法演化论》读后感我从图书馆借阅了《算法演化论》一书,此文是我读后对该书的一些感想。计算机数学是科学计算的一门主体学科,它伴随着电子计算机的推广应用而成长壮大,是一门仅有40余年历史的新学科。在科学计算蓬勃发展的今天,迫切要求充实完善计算数学的学课体系。翻开科学发展史,可以看到,一门学科的形成可以有不同的方式、方法和途径。就如吴文俊先生所指出的一样:“古希腊时代,对待几何学就有两种不同的方法:一种可以欧几里得的《几何原本》为代表,把数量关系完全排除在外,而单纯追求各种几何事实的逻辑关系,以此建立几何

2020-06-09 21:15:30 168

原创 算法分析与设计实践-实验12-图的m着色问题

1. 问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2. 解析利用回溯法。涂的时候从颜色1开始到m,每当涂上一个色,要判断第c个点是否可以涂这个色,不可以的话就不再往下涂了,改试另一个颜色,可以的话就继续。当c>n的时候即前n个点都涂完了,然后输出结果并count++计数。3. 设计if (c > n) {//如果涂的数目大于n,则表示已经成功涂成

2020-06-08 18:45:41 422

原创 算法分析与设计实践-实验11-最优前缀码

1. 问题代码(码字):Q {001,00,010,01}表示字符 a, b, c, d同一序列:0100001产生两种译码(产生歧义):01 00 001; 010 00 01给定字符集C={x1,x2,…,xn}和每个字符的频率f(xi),求关于C的一个最优前缀码。2. 设计哈夫曼算法:1)初始化n个单节点的树,每个字符的概率记在树的根中,用作树的权重。2)找到两棵权重最小的树,把它们作为新树中的左右子树,并把权重和记作新的权重记录在新树的根中。3)重复第二步直到只剩一颗单独的树。3

2020-05-19 23:50:44 223

原创 算法分析与设计实践-实验10-相容问题

1. 问题相容问题,解析时给出其他几种贪心策略(如按开始时间从小到大、每个活动时间的占用时间等),并给出这些贪心策略无法实现最优的反例。问题描述:有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。2. 解析问题建模:设S={1,2,…,n}为活动的集合,si和fi分别为活动i的开始和截止时间,i=1,2,…,n定义:活动i和j相容,即si≥fj或sj≥fi,i≠j求S的最大的两两相容的子集A。

2020-05-12 14:40:01 340

原创 算法分析与设计实践-实验9-LCS算法

1. 问题最长公共子序列问题(Longest Common Subsequence,LCS),给定序列,求 X 和 Y 的最长公共子序列2. 解析3. 设计4. 分析算法复杂度为O(mn)。5. 源码https://github.com/kekekeQWQ/9...

2020-04-28 12:03:41 182

原创 算法分析与设计实践-作业8-矩阵链乘法

1. 问题设A1,A2,…,A3为 n 个矩阵的序列,其中Ai为Pi-1×Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,…,Pn>给出。给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。2. 解析(1)蛮力法:枚举所有可能的乘法次序,针对每种次序计算基本运算的次数,从中找出具有最小运算次数的乘法次序,每一种乘法次序对应了一种在 n 个项中加 n-1 对括号。...

2020-04-21 20:34:39 190

原创 算法分析与设计实践-作业7-投资问题

1. 问题设 m 元钱,n 项投资,函数 表示将 x 元投入第 i 项项目所产生的效益,i=1,2,…,n.问:如何分配这 m 元钱,使得投资的总效益最高?2. 解析3. 设计int MaxProfit(int dp[M][N], int f[M][N], int n, int money){ for (int i = 1; i <= n; i++) { for (i...

2020-04-07 22:13:35 219

原创 算法分析与设计实验-作业6-选最小k元素

1. 问题找出一组元素中第k小的元素并输出。2. 解析3. 设计int divisionRecursion(int a[], int n, int k){ if (n <= 6) { sort(a, n); return a[k - 1]; } else { int b[10], c[10], d[50]; int i = 0, j = 0, t =...

2020-04-07 18:25:23 184

原创 算法设计与分析实践-作业5-最近对问题

1. 问题二维空间上有很多个点,每个点的坐标为(x,y),求距离最近的两个点的坐标和距离。2. 解析3. 设计暴力算法:double closestPoints(double x[],double y[],int n){ double x1,x2,y1,y2; //记录下标 double dist,minDist=MAX; ...

2020-03-31 23:39:39 348

原创 算法设计与分析实践-作业4-二分归并排序

1. 问题二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k。2. 解析将被排序的数组划分成相等的两个子数组,然后递归使用同样的算法分别对两个子数组排序。最后将两个排好序的子数组归并成一个数组。3. 设计// X[0..n-1]表示参加排序的初始序列// t为某一趟归并时子序列的长度//整型变量i指出当前归并的两个子序列中第1个子序列的第1个元素的位置//Y...

2020-03-17 21:18:39 146

原创 算法分析与设计实践-作业3-检索算法

1. 问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.2. 解析顺序查找:从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回0。二分查找:查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则查找过程结束;如果某一特定元素大...

2020-03-17 15:03:38 200

原创 算法分析与设计实践-作业2-Dijkstra算法求最短距离

1. 问题对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。2. 解析Dijkstra算法通过从起始节点往相邻节点不断进行扫描,更新dist数组、path数组和set数组。然后遍历set集合中设0的顶点,假如扫描点为b点,接下来遍历顶点c、d、e、f、g和h。首先是c点,从a=>b=>c没有直接相邻线段,所以a=>b=>c距离设置为无穷大,不对dist和...

2020-03-10 20:51:27 358

原创 算法分析与设计实践-作业2-Floyd算法求最短距离

1. 问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)。2. 解析Floyd算法的核心思想是动态规划,它将多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。如果要找到两个顶点直接的最短路程,一般要引入第三个点(如k),即以k为中转点,路线为i->k->j,这样就可以缩短i到j的距离。但是k是1到n...

2020-03-10 18:38:51 498

原创 算法分析与设计实践-作业1-2-Kruskal构造最小生成树

1. 问题有一张无向图,该图有n个顶点,至少n-1条边。每条边都有相应的权重,计算经过所有点的权重相加最小的路径。2. 解析从边出发,不断寻找当前未添加进Et的、且权值最小的边,若添加后不形成环,则添加成功;否则跳过,继续尝试添加下一条边。最后,判断边的数量arcnum是否是点的数量vexnum-1,若是则最小生成树构造成功,否则失败。3. 设计int Find(int x){if...

2020-03-03 20:21:18 198

原创 算法分析与设计实践-作业1-1-Prime构造最小生成树

1. 问题有一张无向图,该图有n个顶点,至少n-1条边。每条边都有相应的权重,计算经过所有点的权重相加最小的路径。2. 解析将顶点a1设为起点,a1加入集合U{}中(U{}为记录已经经过的顶点),寻找与U{a1}相连并且不构成回路权值最小的边<a1,an>,将an加入集合U{a1},形成U{a1,an},寻找与集合U{a1,an}相连的不构成回路权值最小的边,重复操作直到全部的顶...

2020-03-03 19:20:55 321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除