第7章 数据结构与算法.pptVIP

  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文档。上传文档
查看更多
解决方案 随机放置策略 回溯法 先按照随机放置策略,在棋盘上的若干行上放置皇后(互不攻击),然后在剩下的行中,利用回溯法来完成其余皇后的放置工作,直到所有皇后被放置完毕或无法为下一个皇后安排位置为止. 随机放置的皇后数越多,后续回溯搜索的时间就越少,但失败概率也越大. *算法实现参看教材263 第62页,共92页,编辑于2022年,星期日 随机放置皇后数对算法效率的影响 随机放置皇后数 p s e t 0 1.0000 114.00 - 114.00 1 1.0000 39.63 - 39.63 2 0.8750 22.53 39.67 28.20 3 0.4931 13.48 15.10 29.01 4 0.2618 10.31 8.79 35.10 5 0.1624 9.33 7.29 46.92 6 0.1375 9.05 6.98 53.50 7 0.1293 9.00 6.97 55.93 8 0.1293 9.00 6.97 55.93 解8皇后问题的拉斯维加斯算法中,随机放置皇后数所对应的算法效率 单纯使用回溯法 单纯使用随机放置策略 第63页,共92页,编辑于2022年,星期日 N后问题 整数因子分解 第64页,共92页,编辑于2022年,星期日 整数因子分解 第65页,共92页,编辑于2022年,星期日 提纲 随机数 数值概率算法 舍伍德算法 拉斯维加斯算法 蒙特卡罗算法 本章小结 第30页,共92页,编辑于2022年,星期日 舍伍德算法 舍伍德算法 目的:设法消除最坏情形行为与特定实例之间的关联性。 其计算时间复杂性对所有实例而言相对均匀,但同相应的确定性算法相比,其平均时间复杂性没有改进。 第31页,共92页,编辑于2022年,星期日 第32页,共92页,编辑于2022年,星期日 第33页,共92页,编辑于2022年,星期日 实例说明 线性时间选择 跳跃表 第34页,共92页,编辑于2022年,星期日 线性时间选择 跳跃表 第35页,共92页,编辑于2022年,星期日 线性时间选择 线性时间选择 问题所在:选择合适的划分基准 对于选择问题,用拟中位数作为划分基准可以保证在最坏情况下用线性时间完成选择。 舍伍德型选择算法 随机选择一个组元素作为划分基准,既保证算法的线性时间平均性能,又可以避免计算中位数的麻烦。 第36页,共92页,编辑于2022年,星期日 Select算法分析 第37页,共92页,编辑于2022年,星期日 Select算法分析 如何得到? 第38页,共92页,编辑于2022年,星期日 考虑这种情况:无论n是奇数还是偶数,T(n/2)都出现2次 第39页,共92页,编辑于2022年,星期日 结论 结论 非递归的舍伍德型选择算法Select可以在O(n)平均时间内找出n个输入元素中的第k小元素 提示 对于某些确定性算法,可以将其改造成舍伍德算法,使得该算法以高概率对任何实例均有效。 对于某些不能直接改造的情况,可以借助预处理技术,不改变原有的确定性算法,而仅对其输入元素进行随机洗牌,同样可以收到舍伍德算法的效果。 第40页,共92页,编辑于2022年,星期日 线性时间选择 跳跃表 第41页,共92页,编辑于2022年,星期日 跳跃表 跳跃表 如果用有序链表来表示一个含有n个元素的有序集合S,则在最坏情况下,搜索S中的一个元素需要Ω(n)计算时间。为了跳高效率,可以在部分结点处增加附加指针来提高搜索性能(借助这些附加指针,可以跳过链表中的若干结点,从而加快搜索速度)。这种增加了向前附加指针的有序链表称为跳跃表。 第42页,共92页,编辑于2022年,星期日 2 3 5 7 NIL 11 13 17 19 23 0 举例说明 没有附加指针的有序链表 2 3 5 7 NIL 11 13 17 19 23 0 1 2 3 5 7 NIL 11 13 17 19 23 0 1 2 增加附加指针后的有序链表——跳跃表 第43页,共92页,编辑于2022年,星期日 如何进行搜索? 2 3 5 7 NIL 11 13 17 19 23 0 1 2 问题:如何在该跳跃表中搜索元素8? 第44页,共92页,编辑于2022年,星期日 如何在该跳跃表中搜索元素8? 2 3 5 7 NIL 11 13 17 19 23 0 1 2 元素8位置 2 3 5 7 NIL 11 13 17 19 23 0 1 2 2 3 5 7 NIL 11 13 17 19 23 0 1 2 元素8位置 ? 元素8不在集合S中 第45页,共92页,编辑于2022年,星期日 有序链表?跳跃表 第46页,共92页,编辑于2022年,星期日 存在的问题 应在哪些结点增加附加指针,增加多少? 2 3 5 7 NIL 11 13

文档评论(0)

努力奋斗的小玲 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档