自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多态的理解

java多态的理解

2021-12-14 21:50:02 135

原创 Java抽象类和接口异同

Java抽象类和接口异同

2021-12-14 21:49:26 103

原创 java正则表达式

正则表达式

2021-11-04 21:21:58 118

原创 编写我的第一个java程序Hello World,并通过eclipse插件保存到GitHub中

1.创建本地github库打开GitHub的客户端,在其中创建一个本地仓库2.编写Hello World程序:新建java project,然后右键src文件新建packet文件,再在packet文件中创建class,通过简单的输出函数System.out.println(“Hello World”);实现Hello World的输出。3.通过eclipse插件将代码上传到Github中:准备工作:注册GitHub账号,下载Github客户端选择“窗口-首选项-Version Contro

2021-09-27 11:33:13 131

原创 图的m着色问题

1. 问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2. 解析设G有n个顶点,将顶点编号为1,2,…,n,则搜索空间为深度n的m叉完全树,将颜色编号为1,2,…,m,结点表示顶点1的颜色x1,…,顶点k的颜色xk3. 设计[核心伪代码]bool ok(int k,int c[][100])//判断顶点k的着色是否发生冲突{ int i; for(i

2021-06-05 14:53:52 241

原创 最优前缀编码

1. 问题问题:给定字符集c={x1,x2,…,xn}和每个字符的频率f(xi),求关于C的一个最优前缀码。2. 解析构造最优前缀码的贪心算法就是哈夫曼算法(Huffman)初始化n个单节点的树,每个字符的概率记在树的根中,用作树的权重。找到两棵权重最小的树,作为新树中的左右子树,并把权重和作为新的权重记录在新树的根中。重复第二步直至所有的数据都变成哈夫曼树的叶子结点实例:{5,5,10,10,10,15,20,25}3. 设计[核心伪代码]For i =1 to n-1{ cre

2021-06-05 14:37:55 151

原创 装载问题(0-1背包问题)

1. 问题整数规划问题,0-1背包问题2. 解析思路:轻者先装,直到再装任何集装箱将使轮船载重量超过C时停止。定理:对于任何正整数k,算法(轻者先装)对k个集装箱的实例得到最优解。证明:(数学归纳法)(1)k=1,只有1个集装箱,其重量小于C。任何装法都只有一种方式,因此都是最优解,因此轻者先装也是最优解。(2)归纳假设:假设算法对于规模为k的输入都能得到最优解。考虑规模为k+1的输入,N={1,2,…k+1},W={w1,w2,… , Wk+1)是集装箱重量,w1<=w2<=

2021-05-17 16:05:25 233

原创 LCS算法和背包算法

1. 问题2. 解析Xi=<x1,x2,…,xi>Yj=<y1,y2,…,yj>Zk=<z1,z2,…,zk>如果Zk是Xi和Yj的最长公共子序列(1)xi = yj,那么zk = xi = yj,Zk-1是Xi-1和Yj-1的最长公共子序列(2)xi ≠ yj,那么zk ≠ xi,Zk-1是Xi-1和Yj的最长公共子序列(3)xi ≠ yj,那么zk ≠ yi,Zk-1是Xi和Yj-1的最长公共子序列举例:X=<A,B,C,D,A>Y

2021-05-10 17:40:53 42

原创 矩阵链乘法

1. 问题设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+4682. 解析Ai…j:表示矩阵链相乘的子问题Ai,Ai+1…Aj;M[i…j]:表示得到乘积Ai…j所用的最少基本运算次

2021-05-10 17:11:05 657

原创 investment投资问题

1. 问题一般性描述:设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,…,n问:如何分配这m元钱,使得投资的总效益最高?组合优化问题:假设分配给第i个项目的钱数是Xi,问题描述为:实例:2. 解析递推公式设Fk(x)表示x万元投给前k个项目的最大效益,k=1,2,…,n,x=1,2,…,m说明:第k步,前后共分配x万元分配给第k个项目为xk;x-xk万元,分配给前k-1个项目证明满足优化原则优化原则:一个最优决策序列的任何子序列本身一定是

2021-05-10 16:31:58 81

原创 特定分治策略

1. 问题设L是n个元素的集合,从L中选取第K小的元素,其中1<=K<=n。2. 解析k<=|S1|,归约为在S1中找第k1小的子问题,k1在子问题中的相对位置不变,即k1=k;k=|S1|+1,m就是所要找的第k小的数;以m为划分标准后,比m小的有|S1|个,如果恰巧,k=|S1|+1,则m就是所要找到第k小的数k>|S1|+1,归约为在S2中找k2位置的子问题,k2相对于S2子问题和k相对于S的关系,即k2=k-|S1|-1。(在S中找k,就是在S2中找k2)3.

2021-04-26 20:21:48 37

原创 最近点问题

1. 问题给定平面上n个点,找其中的一对点,使得在n个点的所有点对中,该点对的距离最小。严格地说,最接近点对可能多于1对。为了简单起见,这里只限于找其中的一对。2. 解析蛮力法:在蛮力法实现最近点对问题中,将问题简化:距离最近的点对可能多于一对,找出一对即可,另外只考虑二维平面中的情况。此处考虑到直接用公式计算其距离(欧几里得距离):通过遍历所有点集,计算出每一个点对的距离,计算出最近的距离并输出。避免同一对点计算两次,只考虑i<j的点对(pi,pj)。其主要循环的步骤就是求出平方值,执

2021-04-14 16:43:43 852

原创 二分归并排序

1. 问题二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k2. 解析①将问题划分归结为规模为n/2的2个子问题;②继续划分,将问题划分归结为规模为n/4的4个子问题。③继续划分当子问题规模为1时,划分结束;④从规模1到n/2,陆续归并被排好的两个子数组,每归并一次,数组规模扩大一倍,直到原始数组。3. 设计void merge(int arr[], int low, int mid, int high){ int i, k; int *tmp =

2021-03-29 16:34:40 79

原创 两种检索算法

两种检索算法1. 问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.2. 解析顺序查找:对于任意一个序列及给定元素,将该元素与序列中元素依次比较,直到在序列中找出与该元素相同的元素,或者将序列中的元素全部查找但没有发现相同元素。二分查找: 假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步

2021-03-22 16:35:47 216

原创 用Dijkstra算法求最短路径

用Dijkstra算法求最短路径1. 问题对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。2. 解析1.通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。2.此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离)。3.初始时,S中只有起点s;U中是除s之外的顶点,并且U中顶点的路径是”起点s到该顶点的路径”。然后,从U中找出路径最短的顶点,并将其加入到S

2021-03-20 15:28:56 2435

原创 Floyd算法求解最短距离

Floyd算法求解最短距离1. 问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)。2. 解析1,从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。2,对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短。如果是更新它。把图用邻接矩阵G表示出来,如果从Vi到Vj有路可达,则G[i][j]=d,d表示该路的长度;否则G[i][j]=无穷大。定义一

2021-03-20 15:25:00 508

原创 用Kruskal算法构造最小生成树

用Kruskal算法构造最小生成树1. 问题举一个实例,画出采用Kruskal算法构造最小生成树的过程,并按实验报告模板编写算法。2. 解析假设N=(V,{E})是连通网,将N中的边按权值从小到大的顺序排列;1)将n个顶点看成n个集合;2)按权值由小到大的顺序选择边,所选边应满足两个顶点不在同一个顶点集合内,将该边放到生成树边的集合中。同时将该边的两个顶点所在的顶点集合合并;3)重复2),直到所有的顶点都在同一个顶点集合内。V0和V2不在同一个集合,则选择最小权值1的(0,2)V3和

2021-03-14 16:55:55 1736

原创 用Prim算法构造最小生成树

用Prim算法构造最小生成树1. 问题举一个实例,画出采用Prim算法构造最小生成树的过程,并按实验报告模板编写算法。2. 解析假设N=(V,{E})是连通网,TE为最小生成树中边的集合。1)初始U={u0}(u属于V),TE=P;2)在所有u属于U,v属于V-U的边中选一条代价最小的边(uo,v0)并入集合TE,同时将v0并入U;3)重复2),直到U=V为止。此时,TE中必含有n-1条边,则T=(V,{TE})为N的最小生成树。每个顶点i有两个标记值:顶点i离U集合里的那个顶点最近,

2021-03-14 15:22:00 6215

空空如也

空空如也

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

TA关注的人

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