算法分析考试提纲.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法分析考试提纲

第四章 排序 1、基数排序(算法,程序),注意原理 例 用桶排序法将以下6个数排序: 379,258,731,432,913,455 ? 0号桶 1号桶 2号桶 3号桶 4号桶 5号桶 6号桶 7号桶 8号桶 9号桶 按各位数置桶 ? 731 432 913 ? 455 ? ? 258 379 第一次合并后队列 731 432 913 455 258 379 ? ? ? ? 按十位数置桶 ? 913 ? 731 432 ? 455 258 ? 379 ? ? 第二次合并后队列 913 731 432 455 258 379 ? ? ? ? 按百位数置桶 ? ? 258 379 432 455 ? ? 731 ? 913 结果 258 379 432 455 731 913 ? ? ? ? 基数排序算法(算法4.1) procedure BUCKETSORT begin 置A1,A2,…,An到队列QUEUE中; for i←j step -1 until 1 do begin for I←0 to m-1 do 置Q[I]为空; while QUEUE非空 do 把QUEUE中的第一个元素Ai置入桶Q[aij]中; for l←0 to m-1 do 依次置Q[l]中的元素到QUEUE中 end end 2、堆选排序(算法、程序) 1)用完全二叉树表示表示堆,并用线性方法排除完全二叉树,构造一个堆,满足:1、是一颗完全二叉树;2、ai>=a2i及ai>=a2i 2)构造一个堆排序算法(算法4.3)(注:书上、PPT上均有错) 3)注意时间复杂度 堆排序: procedure sift(i,m:integer);{调整以i为根的子树成为堆,m为结点总数} var k:integer; begin a[0]:=a[i]; k:=2*i;{在完全二叉树中结点i的左孩子为2*i,右孩子为2*i+1} while k =m do begin if (k m) and (a[k] a[k+1]) then inc(k);{找出a[k]与a[k+1]中较大值} if a[0] a[k] then begin a[i]:=a[k];i:=k;k:=2*i; end else k:=m+1; end; a[i]:=a[0]; {将根放在合适的位置} end; 3、插入法 1)使用的是折半查找的思想 2)分段函数,理解含义,会使用 第五章 动态规划 1、单源最短路径问题 注意:最优化从当前状态开始 对于图5.1,计算过程如下: COST(3,6)=min{6+ COST(4,9), 5+ COST(4,10)}=min{6+4, 5+ 2}=7 D(6)=10 COST(3,7)=min{4+ COST(4,9), 3+ COST(4,10)}=min{4+4, 3+ 2}=5 D(7)=10 COST(3,8) =7 D(8)=10 COST(2,2)=min{4+ COST(3,6), 2+ COST(3,7), 1+ COST(3,8)}=min{11, 7, 8}=7 D(2)=7 COST(2,3) =9 D(3)=6 COST(2,4)=11+ COST(3,8)=18 D(4)=8 COST(2,5) =15 D(5)=7 COST(1,1)=min{9+ COST(2,2), 7+ COST(2,3), 3+ COST(2,4), 2+ COST(2,5)}=min{16, 16, 21, 17}=16 D(1)=2 因此,从S到T的一条最短路径的代价是16。只要我们每次记下使COST(i,j)达到最小的第j+1级的顶点号,这条路径也就找到了。 P(1)=1 P(5)=12 P(2)=D(P(1))=D(1)=2 P(3)=D(P(2))=D(2)=7 P(4)=D(P(3))=D(7)=10 最短路径 1→2→7→10→12 算法:两点间的最短路算法(由后向前) _用cost(j)代替cost(i,j),即不记录顶点所在级,存储多级图时应如何处理? ____________________________________ PROCEDURE FGRAPH Begin For i←1 to n do COST[i] ←0; For j←n-1 to 1

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档