自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法设计与分析大作业之圆排序问题

一、问题描述及解析:给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。二、算法核心步骤(伪代码)及图解:首先输入圆个数n,再输入n个圆半径,接着计算出最小长度和当前选择的圆中心的横坐标,最后算排列。设置函数来找到的最小的圆排列长度。已知圆的个数n以及记录各圆半径的数组r[i],i=1,2,3,···n,记录各圆圆心横坐标的数组x[i],i=1,2,3,···n。要记录最短排列长度len,最终求出排列顺序。图解:第i个圆不一定和第i-1个圆相切的情况,如图

2020-06-13 01:17:35 892

原创 算法设计与分析作业十三读书笔记

读《算法图解》有感本学期接触算法课,在学习课内知识的同时,我读了《算法图解》这本书,作者为Adityda Bhargave,我读的是中译版的。书中有400多个算法示意图,生动地介绍了算法执行过程,展示了不同算法在性能方面的优缺点,在学习新算法的同时,还能学会用常见算法解决每天面临的实际编程问题。书中,动态规划法解决的背包问题给我留下了很深刻的印象。首先,动态规划是求解决策过程最优化的数学方法,把多阶段过程转换为系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法。它的基本思

2020-06-10 20:19:13 262

原创 算法设计与分析作业十二图的m着色问题

一、问题描述及解析:图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。二、算法核心步骤(伪代码)及图解:三、代码实现:#include<stdio.h>#include<string.h>const int max=120;int n,m,match;//顶点数,颜色数,边数int c[max][max];//图的链接矩阵int b

2020-06-02 20:52:06 1237

原创 算法设计与分析作业十一最优前缀编码(贪心算法)

一、问题描述及解析:代码(码字):Q{001,00,010,11}表示字符a,b,c,d同一序列:0100001产生两种译码(产生歧义):01 00 001;010 00 01二元前缀码:任何字符的代码不能作为其他字符代码的前缀利用二元前缀码译码:从第一个字符开始依次读入每个字符(0或1),如果发现读到的字串与某个码字相等,就将这个子串译作对应的码字;然后从下一个字符开始继续这个个过程,直到读完输入的字符串为止。二元前缀编码存储:二叉树结构,每个字符作为树叶,对应这个字符的前缀码看作根到这片树叶

2020-05-17 18:26:31 1611

原创 算法设计与分析作业十相容问题(贪心算法)

一、问题描述及解析:二、算法核心步骤(伪代码)及图解:三、代码实现:#include<iostream>#include<stdlib.h>#include<math.h>#include<cstdio>#include<string>#include<cstring>#include<cma...

2020-05-04 23:05:49 268

原创 算法设计与分析作业九LCS算法

一、问题描述及解析:二、算法核心步骤(伪代码)及图解:三、代码实现:#include<iostream>#include<cstring>#include<stack>#include<algorithm>#define MAX 1010using namespace std;int dp[MAX][MAX];int...

2020-04-25 21:52:45 388

原创 算法设计与分析作业八矩阵链的乘法

一、问题描述及解析:设A1,A2···An为n个矩阵的序列,其中Ai为Pi-1*Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,···Pn>给出;给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小。例如:P=<10,100,5,50> 则A1:10×100 A2:100×5 A3:5×50(1)(A1 A2)A3=10×100×5+10×5×50=75...

2020-04-19 22:45:21 306

原创 算法设计与分析作业七之动态规划(投资问题)

一、问题描述:一般性描述:设m元钱,n项投资项目,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,···,n;问:如何分配这m元钱,使得投资总效益最高?组合优化问题:假设分配给第i个项目的钱数是xi,目标函数:max{f1(x1)+ f2(x2)+···+ fn(xn)};约束条件:x1+x2+x3+···+xn=m,xi∈n;二、算法核心步骤(伪代码)及图解:...

2020-04-08 21:18:14 6611 1

原创 算法设计与分析作业六之选第k小元素:特定分治策略

一、问题描述:设S是n个元素的集合,从S中选取第k小的元素,其中1≤k≤n。这里的第k小的元素是指,当S按从小到大排好序后,排在第k个位置的元素。采用二分归并排序,然后选择第k小元素。二、算法核心步骤(伪代码)及图解:伪代码:Select(S,k)输入:n个数的数组S,正整数k;输出:S中的第k小元素;1.将S划分为5个一组,共[n/5]个组;2.每组找一个中位数,把这些中位数放...

2020-04-04 16:12:29 647

原创 算法设计与分析作业五之最近对问题

一、问题描述:n个点在公共空间中,求出所有点对的欧几里得距离最小的点对。二、算法核心步骤(伪代码)及图解:(尽量避免在最内层循环中计算平方根)EfficientClosest Pair(P,Q)//(分治)//输入 (1)P存n≥2个点,按其x轴坐标升序排序;(2)Q存和P相同的点,按其y轴坐标升序排序;//输出:最近点对之间的欧几里得距离;if n≤3 返回蛮力算法求出dmin...

2020-03-29 17:44:01 317

原创 算法设计与分析作业四之二分归并排序算法图解和代码实现

一、问题描述:二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k。二、算法核心步骤(伪代码)及图解:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。...

2020-03-21 15:19:55 1364

原创 算法设计与分析作业三之两种检索算法图解和代码实现

一、问题描述:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0。二、算法核心步骤(伪代码)及图解:顺序查找:按照数组长度,一个个查找,知道找到关键词后返回该关键词下标,找不到返回0;二分查找法:也叫折半查找法,二分查找法实质上是不断地将有序数据集进行对半分割,并检查每个分区的中间元素。二分法图解:三、代码实现:(一) 顺序查...

2020-03-15 14:05:53 299

原创 算法设计与分析作业二之Floyd算法和Dijkstra算法的图解和代码实现

Floyd算法:一、问题描述:从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,算法假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,算法检查Dis(i,k) + Dis(k,j) < Dis(i,j)是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,便设置Dis(i,j) = Dis(i,k) ...

2020-03-08 19:13:58 401

原创 算法分析与设计作业一之Prim算法和Kruskal算法的图解及代码实现

Prim算法:一、问题描述:在带权连通图中V是包含所有顶点的集合,U是已经在最小生成树中的节点。开始时,从图中任意某一顶点v开始,此时集合U={v}(以v到其他顶点的所有边为侯选边);在所有u∈U,w∈V-U的边(u,w)∈E中找到一条权值最小的边,将(u,w)这条边加入到已找到边的集合,并且将点w加入到集合U中,重复上一操作,当U=V时,就找到了这颗最小生成树。二、算法核心步骤(伪代码)及...

2020-03-01 16:57:27 688

空空如也

空空如也

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

TA关注的人

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