- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基本概念和术语1.3抽象数据类型的表示与实现1.4算法和算.ppt
第1章 绪论 1.4 算法与算法分析 算法(algorithm)的概念 算法是对问题求解过程的一种描述,是为解决一个或一类问题给出的一个确定的、有限长的操作序列。严格说来,一个算法必须满足以下五个重要特性 关于本书采用的类语言描述:C 或 C++ 自然语言; 程序设计语言; 类语言。 算法描述 第1章 绪论 1.4 算法与算法分析 算法的基本特征 有穷性:算法中的操作步骤为有限个,且每个步骤都能在有限时间内完成。 确定性:组成算法的操作必须清晰无二义性。 可行性:算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。 输入:作为算法加工对象的量值,通常体现为算法中的一组变量。些算法的字面上可以没有输入,实际上已被嵌入算法之中。 输出:它是一组与输入有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。 在设计算法时通常应考虑以下原则 算法必须是“正确的” 所谓算法是正确的,除了应该满足算法说明中写明的“功能”之外,应对各组典型的带有苛刻条件的输入数据得出正确的结果。 在算法是正确的前提下,算法的可读性是摆在第一位的,这在当今大型软件需要多人合作完成的环境下是换重要的,另一方面,晦涩难读的程序易于隐藏错误而难以调试。 应有很好的“可读性” 第1章 绪论 1.4 算法与算法分析 在设计算法时通常应考虑以下原则 必须具有“健壮性” 算法的健壮性指的是,算法应对非法输入的数据作出恰当反映或进行相应处理,一般情况下,应向调用它的函数返回一个表示错误或错误性质的值。 算法的效率 应考虑所设计的算法具有“高效率与低存储量”。高效率与低存储量是矛盾的,要视具体问题而定。 第1章 绪论 1.4 算法与算法分析 影响时间特性的四个因素 [定义] 语句频度:语句重复执行的次数 第1章 绪论 1.4 算法与算法分析 ① 程序运行时输入数据的总量; ② 对源程序编译所需的时间; ③ 计算机执行每条指令所需的时间; ④ 程序中指令重复执行的次数。 所有算法均以函数形式给出, 算法的输入数据来自参数表; 参数表的参数在算法之前均进行类型说明; 有关结点结构的类型定义,以及全局变量的说明等均在算法之前进行说明 描述算法的书写规则 第1章 绪论 1.4 算法与算法分析 评价算法标准 本课程采用以求解问题的基本操作(原操作)的执行次数作为算法时间的度量。 O(n3) 称为矩阵相乘算法时间复杂度; O(n3)表示矩阵相乘算法执行时间与n3成正比, 即O(n3)与n3 同一数量级; n 阶矩阵相乘的算法 For ( i = 1; i=n; i++ ) For (j = 1; j=n; j++ ) { c[ i ][ j ] = 0 ; For (k = 1; k= n; k++ ) c[ i ][ j ] += a[ i ][ k ] * b[ k ] [ j ] } 乘法 加法 执行次数均为 n3 例 第1章 绪论 1.4 算法与算法分析 说明:有些算法,基本操作执行次数与问题的输入数据有关,这时可考虑 ① 算法平均时间复杂度 ② 算法在最坏情况下的时间复杂度 算法的时间复杂度T(n) 第1章 绪论 1.4 算法与算法分析 一般来说,设算法中基本操作的执行次数是问题规模n的某个函数f(n),算法的时间复杂度记作: T(n) = O(f(n)) 它表示随问题规模n的增大,算法执行时间的增长率与f(n) 的增长率相同。 #define N 100 void scheme() { int i, j, k, count, money; for (i = 0; i=N; i++ ) for (j = 0; j=N; j++ ) for (k=0; k=N; k++) { count=i+j+k; money=3*i+2*j+0.5*k; if ( count==N money==N) printf (“%d, %d, %d \n%”, i, j, k) ; } } 算法的时间复杂度为O (n3) 100元买100支笔, 其中钢笔 3元/支, 圆珠笔 2元/支, 铅笔 0.5元/支,各种组合方案的算法如下,计算时间复杂度。 例 第1章 绪论 1.4 算法与算
您可能关注的文档
- 冯树波教授.doc
- 分子式催化剂以不同熔剂催化Husigen-cycloaddition(I).doc
- 利用新材料、新工艺技术和新杀菌原理生产消毒剂和消毒器械.doc
- 劳博生物质热风燃烧机.doc
- 化学反应速率和化学平衡是中学化学的重要理论之一,.doc
- 化学实验是化学科学的基础,化学教学向来都十分重视化学.doc
- 化学式、化学方程式计算复习课.ppt
- 化学方程式及计算复习(一).ppt
- 化学综合性试题.doc
- 化学自助餐7电解质溶液.doc
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
文档评论(0)