收藏 分享(赏)

算法设计与分析.习题课.ppt

上传人:yjrm16270 文档编号:5909023 上传时间:2019-03-21 格式:PPT 页数:24 大小:118.50KB
下载 相关 举报
算法设计与分析.习题课.ppt_第1页
第1页 / 共24页
算法设计与分析.习题课.ppt_第2页
第2页 / 共24页
算法设计与分析.习题课.ppt_第3页
第3页 / 共24页
算法设计与分析.习题课.ppt_第4页
第4页 / 共24页
算法设计与分析.习题课.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、算法设计与分析习题课,复杂性分析,几种基本结构的算法时间频度,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),递归算法的时间分析,代入法 迭代法 生成函数法 a0+a1+a2+an = ?,递归算法的时间分析,递归算法的时间分析,递归算法的时间分析,递归算法的非递归化,半数集问题,给定一个自

2、然数n,由n开始可以依次产生半数集set(n)中的数如下。 (1)nset(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。这里所说的字符操作

3、包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2个字符串A和B,计算出它们的编辑距离d(A,B)。 例如,若A=“abcd” ,B=“def” ,则编辑距离为4。,编辑距离问题,设: A=(A1, A2, , An) B=(B1, B2, , Bm),若An=Bm,则d(A1n, B1m)=d(A1n-1, B1m-1),否则,可以通过三种操作将A变换为B: 1、变换An为Bm; 2、删除An; 3、插入An+1=Bm;,找钱问题,设某币值

4、系统为(c0,c1,ck),c1,k1,要用最少的币数找出n元钱,能否用贪心算法求解?,若采用贪心法求解,即先尽量找最大可用面值的货币。 设最大可用面值为ct,即:ctnct+1,tk。 设从c0到ct,各种面值的货币各找了ai个,即: a0c0+a1c1+atct=n,求解目标为ai最少。,贪心选择性质: 所做的贪心选择为:atctn(at+1)ct 即:a0c0+a1c1+at-1ct-1ct,最优子结构性质: 做出贪心选择atct后,应使剩余的部分 a0+a1+at-1达到最少。,程序存储问题,设有n个程序1,2, n 要存放在长度为L的磁带上。程序i存放在磁带上的长度是li,1in。

5、程序存储问题要求确定这n 个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。,删数问题,给定n 位正整数a,去掉其中任意kn 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。 例如,n=178543,k=4,则结果为13。,删数问题,设X = X1 X2 Xi-1 Xi Xi+1 Xn 若X1 Xi+1,可证明,删除Xi是可得到的最小的数。,石子合并问题,在一个操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选2 堆石子合并成新的一堆,合并的费用为新的一堆的石子数。试

6、设计一个算法,计算出将n堆石子合并成一堆的最小总费用。,数列极差问题,对由N (N2000)个正数组成的一个数列,进行如下操作:每一次删去其中2 个数设为a和b,然后在数列中加入一个数a*b+1,如此下去直至只剩下一个数。在所有按这种操作方式最后得到的数中,最大的数记为max,最小的数记为min,则该数列的极差M 定义为M = max - min。 例如,若数列为(1, 2, 3),则极差为10-8=2。,数字三角形问题,给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。,整数变换问题,整数变换问题。关于整数i的变换f和

7、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。,设mi表示以Xi为结尾的最大递增子序列的长度。,则:mi = 1+max0,mk | xkxi,1ki,最优服务次序问题,设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti,1in,应如何安排n 个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。,最小重量机器设计问题,设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。 设计算法,给出总价格不超过c的最小重量机器设计。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报