自定义博客皮肤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)
  • 收藏
  • 关注

原创 算法分析与设计homework_12

1.问题给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2.解析使用回溯算法来解决问题。设G有n个顶点,将顶点编号为1, 2, … n,则搜索空间为深度n的m叉完全树,将颜色编号为1,2, .,m,结点<x1,x2…,xk >(x1,x2…,xk∈{1,…,m},1≤k≤m)表示顶点1的颜色x1,顶点2的颜色x2,…,顶点k的颜色xk3.设计//判断是否能着色bo

2021-06-23 12:55:21 81

原创 算法分析与设计homework_11

最优前缀码1.问题给定字符集C={x1,x2,…,xn}和每个字符的频率f(xi),求关于C的一个最优前缀码。2.解析哈夫曼算法:1)初始化n个单节点的树,每个字符的概率记在树的根中,用作树的权重。2)找到两棵权重最小的树,把它们作为新树中的左右子树,并把权重和记作新的权重记录在新树的根中。3)重复第二步直到只剩一颗单独的树。3.设计Huffman算法:输入:C={x1,x2,…,xn}字符集,每个字符的频率f(xi),i=1,2,…,n.输出:Qn<-|C|Q<-C

2021-06-23 12:18:07 69

原创 算法分析与设计homework_10

1.问题有n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且是否有一个合理的装载方案,可将这n个集装箱装上这2艘轮船?如果有,找出一种装载方案。2.解析例如:当n=3, c1=c2=50(1)若w=[10, 40, 40]可将集装箱1和集装箱2装上第一艘轮船,而将集装箱3装上第二艘轮船;(2)如果w=[20, 40, 40]则无法将这3个集装箱都装上船;已证明,如果一个给定装载问题有解,则采用下面的策略可得到最优装载方案。1. 首先将第一艘轮船尽可能装满;

2021-06-23 12:05:17 148

原创 算法分析与设计homework_9

1.问题LCS算法:给定序列X=<x1,x2,…,xm>,Y=<y1,y2,…,yj>,求X和Y的最长公共子序列。背包问题:有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?2.解析LCS算法:Xi=<x1,x2,…,xi>Yj=<y1,y2,…,yj>Zk=<z1,z2,…,zk>如果Zk是Xi和Yj的最长公共子序列(1)xi = yj,那么zk = xi = yj,Zk-1是

2021-06-23 01:22:51 76

原创 算法分析与设计homework_8

1.问题矩阵链乘法,特别要求举例时采用不同于讲义的数据进行推导。2.解析设A1,A2,A3,…,An为n个矩阵的序列,其中Ai为Pi-1×Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,P2,…,Pn>给出。给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。例如,P=<2,4,6,8>,A1:2×4,A2:4×6,A3:6×81)(A1A2)A3=246+2682)A1(A2A3)=248+468Ai…j:表示矩阵链相乘的子问题Ai,Ai+1…Aj;

2021-06-23 01:02:49 62

原创 算法分析与设计homework_7

1.问题2.解析3.设计4.分析5.源码https://github.com/951390752/Algorithm_analysis_and_design-homework/blob/main/homework_7/investment.cpp

2021-06-23 00:32:41 91

原创 算法分析与设计homework_6

1.问题在给出的n个数中,找到第k小的数。2.解析以S中的某个元素m作为划分标准,将S划分为两个子数组S1和S2,把这个数组中比m小的都放入S1的数组中,数组S1的元素个数是|S1|个;把这个数组中比m大的都放入S2的数组中,数组S2的元素个数是|S2|个。若k<|S1|,则原问题归纳为在数组S1中找第k小的子问题。若k=|S1|+1,则m就是要找的第k小元素。若k>|S1|+1,则原问题归纳为在数组S2中找第n−|S1|−1小的子问题。3.设计令q=[p/5](向下取整)。将A

2021-06-23 00:19:04 83

原创 算法分析与设计homework_5

1.问题在二位平面内,给定n(n>=2)个点,找出这n个点中两两之间的最小距离。2.解析当n=2时,直接输出两点的距离;当n=3时,两两比较点之间的距离,输出其中最短的距离;当n>3时,采用分治的方法,将点集不断二分找出最小集合内的最短距离d,但d不一定是分出的两个子集中的最短距离,再临近子集中的点与分割线上的点计算距离并与d比较,找出最小距离d依此方式递归,找出最短距离dmin。3.设计double length(两个点){return 两点的距离}double Effic

2021-06-22 23:38:07 73

原创 算法设计与分析homework_4

问题二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k。解析将被排序的数组划分成相等的两个子数组,然后递归使用同样的算法分别对两个子数组排序。最后将两个排好序的子数组归并成一个数组。...

2021-06-22 23:20:18 59

原创 算法分析与设计homework_3

1 .问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0。2.解析方法一:二分查找法将x和数组中间值T[m]比较,若相等则查找成功,如果不相等则看x大于还是小于T[m],缩小范围,直到查找到下标j,或查找结束,得出x不在数组中,返回j=0。方法二:顺序查找从数组的第一个数开始按顺序查找,将每一个数与x相比,如果相等输出下标j,如果到结尾了还没找到,则输出j=0;3.设计二分查找:输入二分查找函数输入数组进行二分查找

2021-06-22 23:07:56 54

原创 算法分析与设计homework_2

两个顶点最短路径的两种算法(Floyd算法和Dijkstra算法)1.问题Floyd:用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)。Dijkstra:对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径2.解析Floyd:第一、先找出最短的距离第二、然后在考虑如何找出对应的行进路线。如何找出最短路径呢,这里还是用到动态规划的知识,对于任何一个城市而言,i到j的最短距离不外乎存在经过i与j之间经过k和不经过k两种

2021-06-22 22:50:03 184

原创 算法分析与设计homework_1

最小生成树的两种方法(Prim算法和Kruskal算法)1.问题举一个实例,画出采用Prim算法构造最小生成树的过程。举一个实例,画出采用Kruskal算法构造最小生成树的过程。有n个村庄需要修通道路,已知每两个村庄之间的距离,问怎么修路,使得所有村庄都连通(但不一定有直接的公路相连,只要能间接通过公路到达即可),并且道路总长度最小?请计算最小的公路总长度。2.解析令一张连通图的点集为V,未标记的点集合为V1;V1 = V;Prim算法的核心思想就是先在V中随意取一个点p并标记p,然后找出与

2021-06-22 22:21:22 75

转载 java多态

多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:多态性是对象多种表现形式的体现。1.多态概述多态是继封装、继承之后,面向对象的第三大特性。多态现实意义理解:现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。3.多

2021-01-08 12:15:21 56

转载 抽象类与接口

接口和抽象类的区别?接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。接口是公开的,不能有私有的方法或变量,接口中的所有方法都没有方法体,通过关键字interface实现。抽象类是可以有私有方法或私有变量的,通过把类或者类中的方法声明为abstract来表示一个类是抽象类,被声明为抽象的方法不能包含方法体。子类实现方法必须含有相同的或者更低的访问级别(public->protected->private)。抽象类的子类为父类中所有抽象方法的具体实

2021-01-08 11:31:22 53

转载 java正则表达式

1正则表达式1.1。什么是正则表达式?正则表达式定义字符串的搜索模式正则表达式的英文全称是regular expression。搜索模式可以是简单字符,固定字符串或包含描述模式的特殊字符的复杂表达式的任何内容由正则表达式定义的 pattern 可以同时匹配一个或多个,或者一个都没匹配到正则表达式可用于搜索,编辑和操作文本使用正则表达式分析或修改文本的过程称为:正则表达式应用于文本/字符串由正则表达式定义的模式从左到右应用于文本。一旦源字符在匹配中被使用,就不能重复使用。2正则表达式的例子一

2021-01-08 11:18:27 1016

原创 Eclipse 配置Git

一、Eclipse上安装GIT插件EGitHelp > Install New Software…点击Add…然后按照图片输入Egit以及网址下一步默认安装即可,然后重启EclipseEGit插件地址:http://download.eclipse.org/egit/updates二、在Eclipse中配置EGit准备工作:在https://github.com 上注册账号Windows > Preferences > Team > Git > Config

2020-09-22 16:33:21 592

空空如也

空空如也

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

TA关注的人

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