- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法设计与分析》习题课 复杂性分析 几种基本结构的算法时间频度 递归算法的时间分析 代入法 迭代法 生成函数法 a0+a1+a2+..+an = ? 递归算法的时间分析 递归算法的时间分析 递归算法的时间分析 递归算法的非递归化 半数集问题 给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。(1)n∈set(n);(2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;(3)按此规则进行处理,直到不能再添加自然数为止。 例如,set(6)={6,16,26,126,36,136}。半数集set(6)中有6个元素。 对于给定的自然数n,计算半数集set(n)中的元素个数。 半数集问题 闭区间覆盖问题 设x1, x2, ……, xn是实直线上的n个点。用固定长度的闭区间覆盖这n个点,至少需要多少个这样的固定长度闭区间? 编辑距离问题 设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2个字符串A和B,计算出它们的编辑距离d(A,B)。 例如,若A=“abcd” ,B=“def” ,则编辑距离为4。 编辑距离问题 找钱问题 设某币值系统为(c0,c1,..ck),c1,k≥1,要用最少的币数找出n元钱,能否用贪心算法求解? 程序存储问题 设有n个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。 删数问题 给定n 位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。 例如,n=178543,k=4,则结果为13。 删数问题 石子合并问题 在一个操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选2 堆石子合并成新的一堆,合并的费用为新的一堆的石子数。试设计一个算法,计算出将n堆石子合并成一堆的最小总费用。 数列极差问题 对由N (N2000)个正数组成的一个数列,进行如下操作:每一次删去其中2 个数设为a和b,然后在数列中加入一个数a*b+1,如此下去直至只剩下一个数。在所有按这种操作方式最后得到的数中,最大的数记为max,最小的数记为min,则该数列的极差M 定义为M = max - min。 例如,若数列为(1, 2, 3),则极差为10-8=2。 数字三角形问题 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 整数变换问题 整数变换问题。关于整数i的变换f和g定义如下:f(i)=3i;g(i)=└i/2┘。 试设计一个算法,对于给定的2个整数n和m,用最少的f和g变换次数将n变换为m。 例如,可以将整数15 用4 次变换将它变换为整数4:4=gfgg(15)。 整数变换问题 最长递增子序列问题 给定正整数序列x1, x2, ……, xn。计算其最长递增子序列的长度s。 例如,若序列为(3, 6, 2, 5),则s=2。 最优服务次序问题 设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti,1≤i≤n,应如何安排n 个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。 最小重量机器设计问题 设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。 设计算法,给出总价格不超过c的最小重量机器设计。 * * for (int i=0; in; i++) S(); for (int i=0; in; i++) for (int j=0; jn; j++) S(); for (int i=0; in; i++) for (int j=i; jn; j++) S(); T(n) = n = O(n) T(n) = n2 = O(n2) T(n) = n(n+1)/2 = O(n2) 10 5 4 3 2 1 2 1 2 1 1 1 1 1 X1 X2 X3 X4 X5 X6 X7 X8 X9 设: A=(A1, A2, …, An) B=(B1, B2, …, Bm) 若An=Bm,则d(A1..n, B1..m)=d(A1..n
文档评论(0)