算法分析和设计与案例习题集解析

算法分析和设计与案例习题集解析

ID:38441129

大小:443.50 KB

页数:36页

时间:2019-06-12

算法分析和设计与案例习题集解析_第1页
算法分析和设计与案例习题集解析_第2页
算法分析和设计与案例习题集解析_第3页
算法分析和设计与案例习题集解析_第4页
算法分析和设计与案例习题集解析_第5页
资源描述:

《算法分析和设计与案例习题集解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、习题解析第1章1.解析:算法主要是指求解问题的方法。计算机中的算法是求解问题的方法在计算机上的实现。2.解析:算法的五大特征是确定性、有穷性、输入、输出和可行性。3.解析:计算的算法,其中n是正整数。可以取循环变量i的值从1开始,算i的平方,取平方值最接近且小于或者等于n的i即可。4.解析:可以使用反证法,设i=gcd(m,n)=gcd(n,mmodn),则设m=a*i,n=b*i,且a与b互质,这时mmodn=(a-x*b)*i,只需要证明b和a-x*b互质,假设二者不互质,可以推出a与b不互质,因此可以得到证明。5.解析:自然语言描述:十进制

2、整数转换为二进制整数采用“除2取余,逆序排列”法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。流程图:如图*.1图*.1十进制整数转换成二进制整数流程图6.解析:a.如果线性表是数组,则可以进行随机查找。由于有序,因此可以进行折半查找,这样可以在最少的比较次数下完成查找。b.如果线性表是链表,虽然有序,则只能进行顺序查找,从链表头部开始进行比较,当发现当前节点的值大于待查找元素值

3、,则查找失败。7.解析:本题主要是举例让大家了解算法的精确性。过程中不能有含糊不清或者二义性的步骤。大家根据可行的方式总结一下阅读一本书的过程即可。8.解析:数据结构中介绍的字典是一种抽象数据结构,由一组键值对组成,各个键值对的键各不相同,程序可以将新的键值对添加到字典中,或者基于键进行查找、更新或删除等操作。由于本题已知元素唯一,因此大家可以据此建立一个自己的字典结构。实现字典的方法有很多种:·最简单的就是使用链表或数组,但是这种方式只适用于元素个数不多的情况下;·要兼顾高效和简单性,可以使用哈希表;·如果追求更为稳定的性能特征,并且希望高效地

4、实现排序操作的话,则可以使用更为复杂的平衡树。在字典之上的主要操作可以有:创建操作,添加操作,删除操作,查找操作,以及必要的字典维护操作。第2章1.解析:根据本章所述,递归算法和非递归算法的数学分析方法分为5个步骤。2.解析:本题相当于对多项式找“主项”,也就是在除去常系数外,影响函数值递增速度最快的项。a)b)c),c为常数d)e)3.解析:本题中如果手套分左右手,则最优情况选2只,最差情况选12只。本题中如果手套不分左右手,则最优情况仍然选2只,最差情况选4只。从本题的初衷推测设置题目应该是分左右手的手套,在考虑颜色的情况下,选择一双进行匹配

5、。4.解析:本题的一般解法可以使用高等数学中求二者比值的极限来确定结果。a)相同b)第一个小c)二者相同d)第一个大e)二者相同f)第一个小5.解析:a)b)c)d)6.解析:参见本章例2.7。第3章1.解析:蛮力法主要依靠问题的定义,采用简单直接的求解方法。由此决定了蛮力法是解决问题的最简单也是最普遍的算法,同时其经常作为简单问题求解的方法和衡量其他算法的依据。2.解析:2,6,1,4,5,3,2选择排序:

6、2614532i=0:min最后得2,交换二者。1

7、624532i=1:min最后得2,交换二者。12

8、64532i=2:min最后得6,

9、交换二者。122

10、4536i=3:min最后得5,交换二者。1223

11、546i=4:min最后得5,交换二者12234

12、56i=5:min最后得5。122345

13、6结束。冒泡排序:2614532214532

14、6i=0:最大值6就位。12432

15、56i=1:第二大值5就位。1232

16、456i=2:第三大值4就位。122

17、3456i=3:第四大值3就位。12

18、23456i=4:第五大值2就位。1

19、223456i=5:第六大值2就位,剩余的1也就位,排序结束。3.解析:选择排序不稳定,如3.1.1节例子:4,4,2。冒泡排序稳定。4.解析:如2题例子,

20、到i=4时就没有发生交换的活动了。这时可以在冒泡排序的交换部分加入一个布尔变量,如本次循环中没有发生交换,则以后的扫描就可以不进行。5.解析:如果n个点共线,则其最近对只需要考察相邻的点对,因此在对点进行按行坐标排序后,只需要两两计算相邻两点距离,就可以找到最近对。6.解析:所有的过程与寻找二维空间中的最近点对类似,只是计算距离的公式变为:sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z)使用循环计算任意两个点之间的距离,然后记录最小值即可。类似

21、的,如果推广到n维空间,需要考虑空间中任意两点的距离计算公式,同样计算每两个点之间的距离,并记录最小距离即可。7.解析:a)线段的凸包为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。