计算机算法设计与分析
文章平均质量分 53
王晓东 计算机算法设计与分析 算法实现题 源码 Java
dijk
这个作者很懒,什么都没留下…
展开
-
算法设计与分析: 1-1 统计数字问题
1-1 统计数字问题问题描述一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数 字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1, 2,…,9。 给定表示书的总页码的10 进制整数n (1≤n≤10910910^9) 。编程计算书的...原创 2018-07-05 14:51:58 · 1831 阅读 · 0 评论 -
算法设计与分析: 1-2 字典序问题
1-2 字典序问题问题描述在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表A由26个小写字母组成。该字母表产生的升序字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1次。例如,a,b,ab,bc,xyz等字符串都是升序字符串。现在对字母表中产生的所有长度不超过6的升序字符串,计算它在字典中的编码。 1 ...原创 2018-07-05 23:36:44 · 3213 阅读 · 1 评论 -
算法设计与分析: 1-3 最多约数问题
1-3 最多约数问题问题描述正整数x的约数是能整除x的正整数。正整数x的约数个数记为div(x)div(x)div(x)。例如,1,2,5,10都是正整数10的约数,且div(10)=4。 对于给定的2个正整数a<=b,编程计算a与b之间约数个数最多的数。分析设正整数x的质因子分解为 x=pN11pN22...pNkkx=p1N1p2N2...pkNkx=p_...原创 2018-07-06 14:32:05 · 2202 阅读 · 0 评论 -
算法设计与分析: 1-4 金币阵列问题
1-4 金币阵列问题问题描述有m*n枚金币在桌面上排列成一个m行n列的金币阵列。每一枚金币或正面朝上,或背面朝上。用数字表示金币状态,0表示正面朝上,1表示背面朝上。金币阵列游戏的规则是: (1)每次将任一行金币翻过来放在原来的位置上。 (2)每次可以任选2列,交换这2列金币的位置。任务:给定金币的初始状态和目标状态,编程计算按金币游戏规则,将金币排列从...原创 2018-07-06 19:50:35 · 2383 阅读 · 0 评论 -
算法设计与分析: 1-5 最大间隙问题
1-5 最大间隙问题问题描述给定 n 个实数,求这n个实数在数轴上相邻2个数之间的最大差值,设计解最大间隙问题的线性时间算法。分析可用抽屉原理设计最大间隙问题的线性时间算法。Javaimport java.math.BigDecimal;public class Main { public static void main(String[] a...原创 2018-07-07 00:24:56 · 1394 阅读 · 0 评论 -
算法设计与分析: 2-1 输油管道问题
2-1 输油管道问题问题描述某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置?编程任务: 给定n 口油井的位置,编程计算各油井到主管道...原创 2018-07-07 09:25:14 · 2416 阅读 · 0 评论 -
算法设计与分析: 2-2 众数问题
2-2 众数问题问题描述给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的n个自然数组成的多重集S,计算S的众数及其重数 。数组实现Javaimport java.util.Arrays;public class Main {...原创 2018-07-07 15:48:27 · 3897 阅读 · 0 评论 -
算法设计与分析: 2-3 邮局选址问题
2-3 邮局选址问题问题描述在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。用x 坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2|+|y1-y2|度量。 居民们希望在城市中选择建立邮局的最佳位置,使n个居民点到邮局的距离总和最小。编程任务...原创 2018-07-07 16:38:19 · 5156 阅读 · 0 评论 -
算法设计与分析: 2-4 马的Hamilton周游路线问题
2-4 马的Hamilton周游路线问题问题描述8*8的国际象棋棋盘上的一只马,恰好走过除起点外的其他63个位置各一次,最后回到起点,这条路线称为马的一条Hamilton周游路线。对于给定的m*n的国际象棋棋盘,m和n均为大于5的偶数,且|m-n|≤2,试设计一个分治算法找出马的一条Hamilton周游路线。回溯法Javapublic class Main { ...原创 2018-07-08 15:13:52 · 3726 阅读 · 0 评论 -
算法设计与分析: 2-5 半数集问题
2-5 半数集问题问题描述给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下: (1)set(n)中包含n; (2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3)按此规则进行处理,直至不能添加自然数为止。 例如,set(6)={6,16,26,126,36,136}。 注意:该半数集是多重集。...原创 2018-07-08 18:16:14 · 1337 阅读 · 0 评论 -
算法设计与分析: 2-6 半数单集问题
2-6 半数单集问题问题描述给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下: (1)set(n)中包含n; (2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3)按此规则进行处理,直至不能添加自然数为止。 例如,set(6)={6,16,26,126,36,136}。 注意:该半数集不是多重集。集合中已经有的元素不再添加到...原创 2018-07-08 19:53:27 · 977 阅读 · 2 评论 -
算法设计与分析: 2-7 士兵站队问题
2-7 士兵站队问题问题描述在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点由整数坐标(x,y)表示。士兵们可以沿网格边上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列(x,y),(x+1,y),…,(x+n-1,y)。如何选择x 和y的值才能使士兵们以最少的总移动步数排成一列。 编程计算使所有士兵排成一...原创 2018-07-08 21:14:29 · 2536 阅读 · 0 评论 -
算法设计与分析: 2-8 有重复元素的排列问题
2-8 有重复元素的排列问题问题描述设R=r1,r2,…,rnR=r1,r2,…,rnR={ r_1, r_2 , …, r_n}是要进行排列的n个元素。其中元素r1,r2,…,rnr1,r2,…,rnr_1, r_2 , …, r_n可能相同。试设计一个算法,列出R的所有不同排列。编程任务 给定n 以及待排列的n 个元素。计算出这n 个元素的所有不同排列。分治法Ja...原创 2018-07-09 13:11:42 · 3007 阅读 · 0 评论 -
算法设计与分析: 2-9 排列的字典序问题
2-9 排列的字典序问题问题描述n个元素{1,2,…,n}有n!个不同的排列。将这n!个排列按字典序排列并编号为0,1,…,n!-1。每个排列的编号为其字典序值。例如,当n=3时,6个不同排列的字典序值如下: 字典序值 0 1 2 3 4 5 排列 123 132 213 ...原创 2018-07-09 19:35:31 · 2019 阅读 · 1 评论 -
算法设计与分析: 2-10 集合划分问题(Bell数)
2-10 集合划分问题(Bell数)问题描述n个元素的集合{1,2,…,n}可以划分若干个非空子集。例如,当n=4时,集合{1,2,3,4}可以划分为15个不同的非空子集如下: {{1},{2},{3},{4}}, {{1,2},{3},{4}}, {{1,3},{2},{4}}, {{1,4},{2},{3}}, {{2,3},{1},{4}}, {{2,4},{1},{...原创 2018-07-09 22:41:15 · 2610 阅读 · 2 评论 -
算法设计与分析: 2-11 集合划分问题(第2类Stirling数)
2-11 集合划分问题(第2类Stirling数)问题描述n个元素的集合{1,2,.,n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下: {1},{2},{3},{4}}, {{1,2},{3},{4}}, {{1,3},{2},{4}}, {{1,4},{2},{3}}, {{2,3},{1},{4}}, {{2...原创 2018-07-09 23:39:48 · 1216 阅读 · 0 评论 -
算法设计与分析: 2-12 双色Hanoi塔问题
2-12 双色Hanoi塔问题问题描述设A、B、C是3 个塔座。开始时,在塔座A 上有一叠共n 个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,……,n,奇数号圆盘着蓝色,偶数号圆盘着红色,如图所示。现要求将塔座A 上的这一叠圆盘移到塔座B 上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则: 规则(1):每次只能移动1 个圆盘; 规则(2):任何时刻...原创 2018-07-10 01:16:37 · 1650 阅读 · 0 评论 -
算法设计与分析: 2-13 标准二维表问题
2-13 标准二维表问题问题描述设n是一个正整数。2*n的标准二维表是由正整数1,2,…,2n组成的2*n数组,该数组的每行从左到右递增,每列从上到下递增。2*n的标准二维表全体记为Tab(n)。例如,当n=3时,tab(3)二维表如下图所示。 1 2 3 4 5 ...原创 2018-07-10 15:03:09 · 2875 阅读 · 0 评论 -
算法设计与分析: 2-14 整数因子分解问题
2-14 整数因子分解问题问题描述大于1的正整数n可以分解为:n=x1∗x2∗…∗xmn=x1∗x2∗…∗xmn = x_1*x_2*…*x_m。例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6*2; 12=4*3; 12=3*4; 12=3*2*2; 12=2*6; 12=2*3*2; 12=2*2*3。 对于给定的正整数n...原创 2018-07-10 19:12:02 · 1767 阅读 · 0 评论 -
算法设计与分析: 3-1 独立任务最优调度问题(双机调度问题)
3-1 独立任务最优调度问题(双机调度问题)问题描述用2台处理机A和B处理n个作业。设第i个作业交给机器A处理时需要时间aiaia_i,若由机器B来处理,则需要时间bibib_i。由于各作业的特点和机器的性能关系,很可能对于某些i,有ai≥biai≥bia_i≥b_i,而对于某些j,j≠i,有aj<bjaj<bja_j<b_j。既不能将一个作业分开由2台机器处理,也没有一台机器能同时处...原创 2018-07-11 11:56:16 · 4599 阅读 · 1 评论 -
算法设计与分析: 3-2 最少硬币问题
3-2 最少硬币问题问题描述设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。 对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数组Coins,以及钱数m,0≤m≤20001,编程计算找钱m的最少硬币数。...原创 2018-07-11 16:57:47 · 1399 阅读 · 0 评论 -
算法设计与分析: 3-3 序关系计数问题
3-3 序关系计数问题问题描述用关系“<”和“=”将3 个数A、B和C依序排列时有13 种不同的序关系: A = B= C,A = B< C,A < B = C,A < B < C,A < C < B,A = C < B,B <原创 2018-07-11 19:29:05 · 711 阅读 · 0 评论 -
算法设计与分析: 3-4 多重幂计数问题
3-4 多重幂计数问题问题描述设给定n个变量x1,x2,…,xn。将这些变量依序作底和各层幂,可得n重幂如下 这里将上述n重幂看作是不确定的,当在其中加入适当的括号后,才能成为一个确定的n重幂。不同的加括号方式导致不同的n重幂。例如,当n=4时,全部4重幂有5个。对n个变量计算出有多少个不同的n重幂。Java: version 1import java.uti...原创 2018-07-11 21:12:18 · 1153 阅读 · 0 评论 -
算法设计与分析 3-5 编辑距离问题
3-5 编辑距离问题问题描述设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括: (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2个字符串A和B,计算出它们的编辑距离d(A,B)。输入:第...原创 2018-07-11 23:27:10 · 540 阅读 · 0 评论 -
算法设计与分析: 3-6 石子合并问题(圆排列)
3-6 石子合并问题(圆排列)问题描述在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。 规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。分析圆排列的石子合并问题可以转化为n个直线排列的石子合并问题 圆排列:A1,A2,...,AnA1,A2,......原创 2018-07-12 13:03:17 · 2672 阅读 · 0 评论 -
算法设计与分析: 3-7 数字三角形问题
3-7 数字三角形问题问题描述给定一个由n行数字组成的数字三角形,如下图所示: 试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大(每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数)。输入数据: 第一行是数字三角形的行数,接下来 n 行是数字三角形中的数字。Javaimport java.util.Scanner;p...原创 2018-07-12 13:33:10 · 2196 阅读 · 0 评论 -
算法设计与分析: 3-8 乘法表问题
3-8 乘法表问题问题描述定义于字母表∑{a,b,c}上的乘法表如表所示: a b c a ...原创 2018-07-12 15:10:32 · 1401 阅读 · 0 评论 -
算法设计与分析: 3-9 租用游艇问题
3-9 租用游艇问题问题描述长江游艇俱乐部在长江上设置了n个游艇出租站1,2,3…,n。游客可以在这些游艇出租站用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j)r(i,j)r(i,j),1<=i< j <=n。试设计一个算法,计算从游艇出租站1到出租站n所需的最少租金。数据输入 第1行中有1个正整数n(n<=...原创 2018-07-12 16:09:46 · 3798 阅读 · 0 评论 -
算法设计与分析: 3-10 汽车加油行驶问题
3-10 汽车加油行驶问题问题描述给定一个 N*N的方形网格,设其左上角为起点◎,坐标为( 1,1),X轴向右为正, Y轴向下为正,每个方格边长为 1,如图所示。一辆汽车从起点◎出发驶向右下角终点▲,其坐标为( N,N)。在若干个网格交叉点处,设置了油库,可供汽车在行驶途中加油。汽车在行驶过程中应遵守如下规则: (1)汽车只能沿网格边行驶,装满油后能行驶 K条网格边。出发时汽车已装...原创 2018-07-12 20:53:37 · 4141 阅读 · 6 评论 -
算法设计与分析: 3-11 最小m段和问题
3-11 最小m段和问题问题描述给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小?编程计算该序列的最优m段分割,使m段子序列的和的最大值达到最小。数据输入: 第1行中有 2个正整数n和m(0 <= m <= n <= 200)。正整数n是序列的长度;正整数m是分割的段数。 接...原创 2018-07-13 00:28:28 · 2005 阅读 · 0 评论 -
算法设计与分析: 3-12 圈乘运算问题
3-12 圈乘运算问题问题描述关于整数的 2 元圈乘运算⨂⨂\bigotimes定义为 (X⨂⨂\bigotimesY)=10 进制整数 X 的各位数字之和××\times10进制整数Y 的最大数字+++Y的最小数字。 例如,(9⨂⨂\bigotimes30)=9*3+0=27。 对于给定的10进制整数X和K,由X和⨂⨂\bigotimes运算可以组成各种不同的表达式。试设计一...原创 2018-07-13 14:23:58 · 3043 阅读 · 0 评论 -
算法设计与分析: 3-13 最大长方体问题
3-13 最大长方体问题问题描述一个长,宽,高分别为 m,n,p 的长方体被分割成个 m*n*p 个小立方体。每个小立方体 内有一个整数。试设计一个算法,计算出所给长方体的最大子长方体。子长方体的大小由它 所含所有整数之和确定。对于给定的长,宽,高分别为 m,n,p 的长方体,编程计算最大子长方体的大小。数据输入: 第 1 行是 3 个正整数 m,n,p,1<= m,n...原创 2018-07-13 16:04:17 · 2713 阅读 · 0 评论 -
算法设计与分析: 3-14 正则表达式匹配问题
3-14 正则表达式匹配问题问题描述许多操作系统采用正则表达式实现文件匹配功能。一种简单的正则表达式由英文字母、数字及通配符“ * ”和“?”组成。“?”代表任意一个字符。“ * ”则可以代表任意多个字符。 现要用正则表达式对部分文件进行操作。试设计一个算法,找出一个正则表达式,使其能匹配的待操作文件最多,但不能匹配任何不进行操作的文件。所找出的正则表达式的长度还应是最短的。数...原创 2018-07-13 19:31:12 · 2764 阅读 · 1 评论 -
算法设计与分析: 3-15 双调旅行售货员问题
3-15 双调旅行售货员问题问题描述欧氏旅行售货员问题是对给定的平面上 n 个点确定一条连接这 n 个点的长度最短的哈密 顿回路。由于欧氏距离满足三角不等式,所以欧氏旅行售货员问题是一个特殊的具有三角不 等式性质的旅行售货员问题。它仍是一个 NP 完全问题。最短双调 TSP 回路是欧氏旅行售货 员问题的特殊情况。平面上 n 个点的双调 TSP 回路是从最左点开始,严格地由左至右直到 最...原创 2018-07-13 21:32:56 · 1894 阅读 · 0 评论 -
算法设计与分析: 3-16 最大k乘积问题
3-16 最大k乘积问题问题描述设 I 是一个 n 位十进制整数。如果将 I 划分为 k 段,则可得到 k 个整数。这 k 个整数的 乘积称为 I 的一个 k 乘积。试设计一个算法,对于给定的 I 和 k,求出 I 的最大 k 乘积。数据输入: 第 1 行中有 2 个正整数 n 和 k。正整数 n 是序列 的长度;正整数 k 是分割的段数。接下来的一行中是一个 n 位十进制整数。...原创 2018-07-13 22:49:26 · 1448 阅读 · 0 评论 -
算法设计与分析: 3-17 最少费用购物问题
3-17 最少费用购物问题问题描述商店中每种商品都有标价。例如,一朵花的价格是 2 元。一个花瓶的价格是 5 元。为了吸引顾客,商店提供了一组优惠商品价。优惠商品是把一种或多种商品分成一组,并降价销 售。例如,3 朵花的价格不是 6 元而是 5 元。2 个花瓶加 1 朵花的优惠价是 10 元。试设计一个算法,计算出某一顾客所购商品应付的最少费用。对于给定欲购商品的价格和数量,以及优...原创 2018-07-14 00:54:39 · 6079 阅读 · 0 评论 -
算法设计与分析: 3-18 收集样本问题
3-18 收集样本问题问题描述机器人 Rob 在一个有 n*n 个方格的方形区域 F 中收集样本。(i,j)方格中样本的价值 为 v(i,j),如下图所示。 Rob 从方形区域 F 的左上角 A 点出发,向下或向右行走,直到右下角的 B 点,在走过的 路上,收集方格中的样本。Rob 从 A 点到 B 点共走 2 次,试找出 Rob 的 2 条行走路径,使其取得的样本总价值最...原创 2018-07-14 10:19:00 · 2617 阅读 · 0 评论 -
算法设计与分析: 3-19 最优时间表问题
3-19 最优时间表问题问题描述一台精密仪器的工作时间为 n 个时间单位。与仪器工作时间同步进行若干仪器维修程序。一旦启动维修程序,仪器必须进入维修程序。如果只有一个维修程序启动,则必须进入 该维修程序。如果在同一时刻有多个维修程序,可任选进入其中的一个维修程序。维修程序 必须从头开始,不能从中间插入。一个维修程序从第 s 个时间单位开始,持续 t 个时间单位, 则该维修程序在第 s+...原创 2018-07-14 11:38:33 · 2333 阅读 · 0 评论 -
算法设计与分析: 3-20 字符串比较问题
3-20 字符串比较问题问题描述对于长度相同的 2 个字符串 A 和 B,其距离定义为相应位置字符距离之和。2 个非空格字符的距离是它们的 ASCII 码之差的绝对值。空格与空格的距离为 0;空格与其它字符的距 离为一定值 k。在一般情况下,字符串 A 和 B 的长度不一定相同。字符串 A 的扩展是在 A 中插入若干 空格字符所产生的字符串。在字符串 A 和 B 的所有长度相同的扩...原创 2018-07-14 12:50:13 · 1515 阅读 · 0 评论 -
算法设计与分析: 3-21 有向树k中值问题
3-21 有向树k中值问题问题描述给定一棵有向树 T,树 T 中每个顶点 u 都有一个权 w(u);树的每条边(u,v)也都有一个非负边长 d(u,v)。有向树 T 的每个顶点 u 可以看作客户,其服务需求量为 w(u)。每条边(u,v) 的边长 d(u,v) 可以看作运输费用。如果在顶点 u 处未设置服务机构,则将顶点 u 处的服务 需求沿有向树的边(u,v)转移到顶点 v 处服务机...原创 2018-07-14 15:03:18 · 2018 阅读 · 1 评论