- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 算法分析及基本概念和方法
第1章 算法分析的基本概念和方法 内容提要 ?一、算法及其特性 ??二、算法的时间空间复杂度 ??三、算法分析(Algorithm Analysis) 1.分析算法时间复杂度的基本步骤 2.算法时间复杂度的有关概念 3.分析、求解算法复杂度的方法 ??四、最优算法(optimal algorithm) 知识要点 算法分析的概念 复杂度渐近表示的记号:O, ?,? 平均时间复杂度,最坏时间复杂度,最好时间复杂度 最优算法 分析算法复杂度的基本方法 分析算法时间复杂度的步骤 基本运算执行频数的统计方法 数学知识:求和公式、定积分近似求和、递归方程的求解 学习要求 掌握算法复杂度的基本概念 熟悉算法复杂度分析的基本方法 1.1.算法及其特性 一、 算法(algorithm)???? 算法就是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算。 二、算法的五个特性 确定性 能行性 有穷性 输入 输出 1.1.算法及其特性 衡量算法性能一般有下面几个标准: 确定性 易读性 健壮性 算法的时间和空间性能:高效率和低存储空间 ???? 本课程中主要讨论算法的时间和空间性能,并以此作为衡量算法性能的重要标准,而且主要侧重于时间方面。 1.2. 算法的时间空间复杂度 算法的时间复杂度:在算法运行期间所花费的时间。 通常用渐进形式表示。比如,T(n)= O (n2)、 ?(n2) 或 ?(n2) 1.2. 算法的时间空间复杂度 算法的空间复杂度:在算法运行期间所需要的内存空间,通常指除开容纳输入数据之外的附加空间(auxiliary space, or work space)。 通常用渐进形式表示。比如,S(n)= O(n2)、?(n2)或 ?(n2) 1.2. 算法的时间空间复杂度 ????算法分析是指对于计算机算法的时间和空间复杂度进行定量的分析。为了确切起见,假定执行算法的计算机是满足如下条件的“通用型”计算机: 顺序处理机:每次执行程序中的一条指令; RAM足够大; 在固定的时间内可把一个数从一个单元取出或者存入。 ????下面将学习算法分析的主要内容: 分析算法时间复杂度的基本步骤 算法时间复杂度的有关概念 分析、求解算法复杂度的数学知识 1.3. 分析复杂度的基本步骤 对算法的分析必须脱离具体的计算机结构和程序设计语言。因此,比较两个算法的好坏,看其中所需的运算时间的长短是由算法所需的运算次数决定的。任何一个算法都可能有几种运算,因此,我们抓住其中影响算法运行时间最大的运算作为基本运算。如在一个字表中寻找Z的问题,把Z和表中元素的比较作为基本运算。两个实数矩阵相乘的问题中,则把两个实数相乘作为基本运算。 1.3. 分析复杂度的基本步骤 一个计算步骤,如果其时间耗费总是不超过某个常量,而与输入和算法无关,则称之为元运算。 1.3. 分析复杂度的基本步骤 ? 同一个问题对不同的输入,基本运算的次数亦可能不同。因此,我们引进问题大小(即规模,size)的概念。例如,在一个姓名表中寻找给定的Z的问题,问题的大小可用表中姓名的数目表示。对于两个实数矩阵相乘的问题,其大小可用矩阵的阶来表示。而对于遍历一棵二叉树的问题,其大小是用树中结点数来表示等等。这样,一个算法的基本运算的次数就可用问题的大小n的函数f(n)来表示。 1.3. 分析复杂度的基本步骤 ?在一个算法中,出现的频数最高(在相差一个常数因子的意义上)的元运算称为基本元算。 1.3. 分析复杂度的基本步骤 在实际中精确地求一个算法的基本运算次数f(n)等于多少,往往不容易,甚至有时根本不可能,有些即使求出结果很长,很繁琐,不易比较,需要简化。这时候我们可以不精确地估计f(n)。此外,我们分析算法的时间目的主要在于,能区分不同算法的优劣,在n很小时候,差别不大,随着n的逐渐增大,差别越来越大,是个极限行为。基于上述原因,引进下面渐近表示的方法。复杂度渐近表示可以将简洁地表示出复杂度的数量级别。 1.3. 分析复杂度的基本步骤 设f(n)和g(n)均是从自然数集到非负实数集上的函数。如果存在常数c0和一个自然数n0,使得对于任意的n≥n0 ,均有????????f(n)≤cg(n),则f(n)=O(g(n))。 含义:阶至多为g(n)的函数,即上限。 读法: O(g(n))读作“大Oh g(n)”。 1.3. 分析复杂度的基本步骤 设f(n)和g(n)均是从自然数集到非负实数集上的函数。如果存在常数c0和一个自然数n0,使得对于任意的n≥n0 ,均有????????f(n)≥cg(n),则,f(n)= ?(g(n))。? 含义: 阶至少为g(n)的函数,即下限
您可能关注的文档
- 餐饮迎宾员及岗位职责.doc
- 饱和蒸汽压力与密度及关系.doc
- 饲养管理卫生之鸡场场址及选择.doc
- 饱和蒸汽温度和压力关系.doc
- 饱和溶液和不饱和溶液习题选.doc
- 首先我们应该清楚夹层及类型.doc
- 第1章 时域离散随机信号及分析.ppt
- 首尔国际金融中心产业集聚和辐射能力分析.doc
- 首富卡洛斯.斯利姆.埃卢及成功秘诀.doc
- 首饰及定义和标准分类.docx
- 2025年安徽工商职业学院单招职业技能测试题库带答案(典型题).docx
- 2025年洛阳科技职业学院单招职业技能测试题库带答案(新).docx
- 2025年荆门职业学院单招职业技能测试题库及答案(易错题).docx
- 2025年宣化科技职业学院单招职业技能测试题库(精练).docx
- 2025年包头职业技术学院单招职业技能测试题库带答案(新).docx
- 2025年江西工商职业技术学院单招职业技能测试题库带答案(精练).docx
- 2025年黑龙江农业经济职业学院单招职业技能测试题库精编.docx
- 2025年山东艺术设计职业学院单招职业技能测试题库带答案(基础题).docx
- 2025年陕西工商职业学院单招职业技能测试题库带答案(突破训练).docx
- 2025年承德护理职业学院单招职业技能测试题库【word】.docx
文档评论(0)