ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:33.30KB ,
资源ID:9765623      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9765623.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法复习材料1.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法复习材料1.docx

1、算法复习材料1算法复习练习题一计算题与简答题1.用表示函数f与g之间的关系。(1) f(n)=10000n g(n)=n-10000(2) f(n)=2n g(n)=3n/n(3) f(n)=n3log2n g(n)=n2log3n(4) f(n)=log2n g(n)=log3n(5) f(n)=100n+n100 g(n)=n!2.估计下列算法的时间复杂性的阶。(1)算法A的时间复杂性为,(2)算法B的时间复杂性为3. 计算下面算法中count=count+1的执行次数算法 COUNT3 输入:,k为正整数 输出:count=count+1的执行次数 count=0 for i=1 to

2、n j=2 while j1 and not sorted sorted=true for j=2 to i if AjAj-1 then Aj Aj-1 sorted=false end if end for i=i-1end while end BUBBLESORT5.用两种方法证明log n!= (n log n)。(1)用代数方法(2)用积分方法6.求解递推关系式 f(n)=-6f(n-1)-9f(n-2)。 7. 分治算法由哪些基本步骤组成分治算法的时间复杂性常满足什么样的递归方程,写出该方程的一般形式,并指出其中各参数的意义。8. 算法有哪五个特性9. 什么是最优子结构10. 贪心

3、法与动态规划有何根本区别11. 设计回溯算法通常包括哪些步骤12. 随机算法分成那几类,各有什么特点三算法填空1. 以下是计算xm的值的过程power ( x, m )以下是关于矩阵链乘的算法MATCHAIN1和MATCHAIN_PRODUCT算法 MATCHAIN1输入:矩阵链长度n, n个矩阵的阶r1.n+1, 其中r1.n为n个矩阵的行数,rn+1为第n个矩阵的列数。输出:n个矩阵相乘的数量乘法的最小次数,最优顺序的信息数组S1.n, 1.n。for i=1 to n Ci, i=0 n, 1.n。输出:按最优顺序计算的矩阵链乘积M=M1M2Mn 。 M=matchain_product

4、( 1, n ) return Mend MATCHAIN_PRODUCT 过程 matchain_product (i, j) 以下是迷宫问题的算法算法 MAZE 输入:正整数m, n,表示迷宫的数组M0.m+1, 0.n+1 (迷宫数据存于M1.m, 1.n中),迷宫的入口位置(ix, iy),出口位置(ox, oy)。 输出:迷宫中入口至出口的一条通路,若无通路,则输出no solution。 M0, 0.n+1=Mm+1, 0.n+1=1 M0.m+1, 0=M0.m+1, n+1=1 m, 1.n=0 为dx1.4, dy1.4置值 flag=false i表示的通路。 else o

5、utput “no solution”下面是求一个序列的多数元素的递归算法算法 MAJORITY输入:n个元素的数组A1.n。输出:若A1.n存在多数元素,则输出;否则输出none。 c=candidate ( 1 ) n中的候选多数元素。count=0 n中的多数元素。 for j=1 to n if Aj=c then count=count+1 end for if _ then return c else return noneend MAJORITY过程 candidate ( m )n中的候选多数元素并返回。j=m; c=Am; count=1while j0 j=j+1 if _

6、 then _ else _ 下面是0-1背包问题的算法算法 KNAPSACKREC输入:物品数n, n种物品的体积数组s1.n和价值数组v1.n, 背包容量C。输出:装入背包物品的最大总价值,以及最优解的信息数组H0.n, 0.C。 for i=0 to n for j=0 to C Vi, j=-1 maxv=knapsack(n, C) return maxv , Hend KNAPSACKREC过程 knapsack(i, j) n, 0.C。 if Vi, j=-1 then n, 相应的0/1背包问题的最优解信息数组H0.n, 0.C。输出:相应的0/1背包问题的最优解X1.n。

7、y=C 以下是随机化的线性选择算法算法 RANDOMIZEDSELECT输入:整数n, k, 1=k=n, 以及n个元素的数组A1.n。输出:A中的第k小元素s。 s=rselect ( A , 1, n, k )end RANDOMIZEDSELECT过程 rselect ( A , low, high, k ) high中的第k小元素并返回。 v=random(low, high) mm= _ 将Alow.high分成三个数组: A1=a|amm high的第k小元素。 |A1|+|A2|k: return rselect _ 以下是归并排序的分治算法MERGESORT 输入:n个元素的数

8、组A1.n。 输出:按非降序排序的数组A1.n。 mergesort(A , 1, n) end MERGESORT 过程 mergersort( A , low, high ) high 按非降序归并排序。 if low=Li, j-1 then Li, j= _ ; Hi, j=1 else Li, j=Li, j-1 ; Hi, j= _ end if end if end for end for return Ln, m, H end LCS算法 LCSS输入:非负整数n、m, 长度分别为n和m的序列A和B的最长公共子序列的有关信息数组H1.n, 1.m, 序列A= a1a2an 。输

9、出: 序列A和B的最长公共子序列C 。 C= 以下是0-1背包问题的回溯算法算法 KNAPSACK01输入: 物品数n, n种物品的体积数组s1.n和价值数组v1.n,背包容量C。输出:装入背包物品的最大总价值maxv和最优解x01.n。 n表示选择的物品子集,初始化为空集。 rv=0; rs=0for i=1 to nrv=rv+vi ; rs=rs+si maxv=0; x01.n=x1.n=0 n end KNAPSACK01 过程:knapsack(k, r, cv, rv, rs) k固k=x1.k; x0k+1.n=1; end if else if r0 and cv+rvmax

10、v then 下面是求第k小元素的算法算法 SELECT输入:整数n, k, 1=k=n, 以及n个元素的数组A1.n。输出:A中的第k小元素s。 s=select ( A , 1, n, k )end SELECT过程 select ( A , low, high, k ) high中的第k小元素并返回。 p=high-low+1 high排序 return(Alow+k-1) end if high每5个分组,剩余的被排除。 将Alow.low+5q-1分为q组, 每组5个元素; 将q组中的每一组单独排序并找出中项,所有的中项存于数组M1.q中; mm=select(_) high分成三组

11、: A1=a|amm 有期限的作业安排问题算法 JOB_ARRANGEMENT输入:作业数n, 表示n个作业的期限和收益的数组d1.n和p1.n。输出:最优的作业安排序列J1.k和安排的作业数k。n按降序地址排序,排序结果返回到数组a1.n kend JOB_ARRANGEMENT15. 以下是关于矩阵链乘的算法MATCHAIN1和MATCHAIN_PRODUCT算法 MATCHAIN1输入:矩阵链长度n, n个矩阵的阶r1.n+1, 其中r1.n为n个矩阵的行数,rn+1为第n个矩阵的列数。输出:n个矩阵相乘的数量乘法的最小次数,最优顺序的信息数组S1.n, 1.n。for i=1 to n

12、 Ci, i=0 n, 1.n。输出:按最优顺序计算的矩阵链乘积M=M1M2Mn 。 M=matchain_product( 1, n ) return Mend MATCHAIN_PRODUCT 过程 matchain_product (i, j) 格雷码问题对于给定的正整数n,格雷码为满足如下条件的一个编码序列:(1) 序列由2n个编码组成,每个编码都是长度为n的二进制位串。(2) 序列中无相同的编码。(3) 序列中位置相邻的两个编码恰有一位不同。例如:n=2时的格雷码为:00, 01, 11, 10。设计求格雷码的递归算法。2. 给出一个分治算法,在一个具有n个数的数组中找出第二个最大元素。给出你的算法的时间复杂性3. 考虑金钱兑换问题。有一个货币系统,它有n种硬币,它们的面值为v1,v2,vn,其中v1=1。我们想这样来兑换价值为y的钱,要让硬币的数目最少。更形式地,我们要让下面的量在约束条件下极小。其中,x1,x2,xn是非负整数(xi可能是0)4. 线段覆盖问题:在实轴上有n个点x1, x2, xn , 要求用最少数量的单位长线段覆盖这些点。写出求该问题的最优值和最优解的贪心算法。5.马的周游问题:给出一个nxn棋盘,一个中国象棋马在某个起点位置(x0, y0),求一条访问每个棋盘格点恰好一次,最后回到起点的周游路线。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1