算法设计与分析电子教案P1.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文档。上传文档
查看更多
算法设计与分析电子教案P1

Lecture Notes Series on Computing Vol.7 Algorithms Design Techniques and Analysis M.H.Alsuwaiyel著 主要内容介绍 第1部分 算法引论 算法分析基本概念 数学预备知识 数据结构基本知识 堆和不相交集数据结构 第2部分 递归技术 递归法 分治法 动态规划 第3部分 最优割技术 贪心算法 图的遍历法 主要内容介绍(续) 第4部分 问题复杂性 NP完全问题 计算复杂性引论 下界问题 第6部分 克服困难性 回溯法 随机算法 近似算法 第6部分 域指定问题的迭代改进 网络流问题 匹配问题 第7部分 计算几何技术 几何扫描问题 Voronoi图解问题 第1部分 算法引论 主要知识点: 1. 算法分析基本概念 重点对给定算法的时间和空间分析 2. 算法分析数学预备知识 重点算法分析数学背景知识:求和、递推 3. 数据结构基本知识 重点算法设计的基本数据结构 4. 堆与不相交集数据结构 重点优先队列和不相交集数据结构 第1节 算法分析基本概念 1.1 算法与程序 1.2 表达算法的抽象机制 1.3 描述算法 1.4 二分搜索分析 1.5 归并两个有序表 1.6 排序算法 1.7 BottomUoSort 1.8 算法复杂性分析 1.9 最优算法 2.0 平摊分析 2.1 输入大小和实例 1.1 算法与程序 输 入:有零个或多个外部量作为算法的输入。 输 出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。 1.2 表达算法的抽象机制 1.从机器语言到高级语言的抽象 1.2 表达算法的抽象机制 2.抽象数据类型 1.3 描述算法 在本书中,采用伪程序设计语言描述算法。 采用类似自然语言和程序设计语言结合的方式来描述算法。 1.4 二分搜索 假定对有序线性集合进行查找元素x是否在集合中。目的设计比较次数少的最优算法(对于搜索的主要开销在元素比较上)。 以下的算法均在升序的有序数组A[1:n]数据结构基础上操作。搜索A[j]=x,如不存在则j=0,否则j为所求元素位置 算法1.1 顺序比较 效率分析 算法1.2 二分搜索 效率分析 对于算法1.1效率差,最坏比较次数为数组元素个数,最好为1; 1.5 归并两个有序表 将两个有序的表合并成一个大的有序表。目的分析比较次数。 算法1.3 1.6 排序算法 算法1.4选择排序 算法1.4分析元素比较次数为n(n-1)/2,元素赋值次数界于0~3(n-1)之间。 算法1.5插入排序 算法1.5分析元素比较次数界于n-1~n(n-1)/2之间元素赋值次数为元素比较次数加n-1 1.7 BottomUpSort 前面的排序算法对n元素排序元素比较次数与n2成正比。效率不高。 思想:对n个元素的数组,首先合并n/2个连续元素对,生成大小为2的n/2个有序对;如剩余1个元素则假如下一轮迭代; 再合并n/4个连续的2个元素对序列,生成n/4个大小为4的有序序列,如剩余1或2个元素则将其进入下一轮迭代;如剩余3个元素则将2个元素和1个元素合并成3个元素的有序对; 继续上诉过程,在第j次迭代中,合并n/2j对大小为2j的有序序列,生成大小为2j的n/2j个有序序列,如果有1=k 2j元素剩余,则将其竟如下一伦迭代;如剩余2j-1k 2j个元素,则将其合并成k个元素的有序序列 算法1.5分析: 结论:当n为2的方幂时,元素的比较次数ji界于(nlogn)/2~nlogn-n+1之间;元素赋值次数为2nlogn 1.8 算法复杂性分析 1.8.1算法的时间复杂性 算法运行的时间确定性是算法分析的基本组成部分,也称计算复杂性。 影响算法运行时间的因素: 计算机;采用的程序设计语言;程序员的能力;编译器的能力;数据的规模等。因而评估算法运行的时间问题上,采用确切的时间不可行;采用近似时间才有效,近似的时间也难估计,如何才能有一个合理的估算办法? 1.8.1算法的时间复杂性 算法时间复杂性分析一般考虑以下几点: 估计时间是相对的;与问题有关 算法独立于计算机和程序设计语言 算法独立于技术 算法再大规模输入情况分析 不考虑算法精确运算次数,讨论运行时间的增长率或增长阶,即一些影响算法的常数项和低阶项可以不考虑 1.8 .1算法复杂性分析 1.8 .1算法复杂性分析 1.8.1 算法复杂性分析 1.8.1 算法复杂性分析 例1.5 例1.7 例1.9 例1.16 1.8.2 算法空间复杂性 算法使用空间:是求解问题实例而执行的计算步骤所需要的内存空间,不包括存储输入的空间,

文档评论(0)

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

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

1亿VIP精品文档

相关文档