算法设计技巧与分析答案.docx
- 文档编号:1969892
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:15
- 大小:432.61KB
算法设计技巧与分析答案.docx
《算法设计技巧与分析答案.docx》由会员分享,可在线阅读,更多相关《算法设计技巧与分析答案.docx(15页珍藏版)》请在冰豆网上搜索。
算法设计技巧与分析答案
算法设计技巧与分析
参考答案
第1章算法分析基本概念
1.1
(a)6(b)5(c)6(d)6
1.4
算法执行了7+6+5+4+3+2+1=28次比较
1.5
(a)算法MODSELECTIONSORT执行的元素赋值的最少次数是0,元素已按非降序排列的时候达到最小值。
(b)算法MODSELECTIONSORT执行的元素赋值的最多次数是,元素已按非升序排列的时候达到最小值。
1.7
由上图可以看到执行的比较次数为1+1+2+2+2+6+2=16次。
1.11
由上图可以得出比较次数为5+6+6+9=26次。
1.13
FTF,TTT,FTF,TFF,FTF
1.16
(a)执行该算法,元素比较的最少次数是n-1。
元素已按非降序排列时候达到最小值。
(b)执行该算法,元素比较的最多次数是。
元素已按非升序排列时候达到最大值。
(c)执行该算法,元素赋值的最少次数是0。
元素已按非降序排列时候达到最小值。
(d)执行该算法,元素赋值的最多次数是。
元素已按非升序排列时候达到最大值。
(e)用O符号和符号表示算法BUBBLESORT的运行时间:
,
(f)不可以用符号来表示算法的运行时间:
是用来表示算法的精确阶的,而本算法运行时间由线性到平方排列,因此不能用这一符号表示。
1.27
不能用关系来比较和增长的阶。
∵
不是的,即不能用关系来比较和增长的阶。
1.32
(a)当n为2的幂时,第六步执行的最大次数是:
时,
(b)由(a)可以得到:
当每一次循环j都为2的幂时,第六步执行的次数最大,
则当(其中取整)时,
(c)用符号表示的算法的时间复杂性是
已证明n=2k的情况,下面证明n=2k+1的情况:
因为有
所以n=2k+1时,第六步执行的最大次数仍是nlogn。
(d)用符号表示的算法的时间复杂性是。
当满足取整为奇数时,算法执行的次数是次,其他情况算法执行次数均大于。
(e)O更适合表示算法的时间复杂性。
因为本算法时间复杂性从到,而是表示精确阶的。
1.38
对个数进行排序。
第5章归纳法
5.3(本题不仅有以下一个答案)
1.max(n)
过程:
max(i)
ifn=1returna[1]
t=max(i-1)
ifa[i-1]>treturna[i-1]
elsereturnt
endif
5.6
最多次数:
最少次数:
C(n)=n-1
5.7
参考例5.1
5.14
(a)不稳定,例如:
可见SELECTIONSORT中相等元素的序在排序后改变。
(b)(c)(d)(f)稳定
5.17
(a)利用
取,
5.18
(a)
第6章分治
6.3
输入:
A[1,2,…n]
输出:
max,min
1.fori=1tomid
2.j=high-i
3.ifa[i]>a[j],thenexchangea[i],a[j]
4.endfor
5.fori=lowtomid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 技巧 分析 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)