- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法的五个重要特性 (1)有穷性---执行了有限条指令后一定要终止。 例5、例6 (2)确定性(无二义)---算法的每一步操作都必须有确切定义,不得有任何歧义性。 (3)可(能)行性---算法的每一步操作都必须是可行的,即每步操作均能在有限时间内完成。 (4)输入数据---一个算法有n (n=0)个初始数据的输入。 (5)输出数据---一个算法有一个或多个的有效信息的输出。 例5 一个不是算法的例子 (1)begin (2)n=0 (3)n=n+1 (4)repeat (3) (5)end 例6 一个不超过100次计数的算法 (1)begin (2)n=0 (3)n=n+1 (4)if n=100 do (5) else repeat(3) (5)output n (6)end 返回 算法的描述和实现 描述---可采用自然语言、数学语言或约定的符号语言。 实现---必须借助程序设计语言提供的数据类型及其运算。 本课的描述---采用类C语言 (P9-13 §1.3 课后仔细阅读) 思考:算法与程序有何区别? 算法设计的要求 正确性、可读性、健壮性、高效率与低存储量需求 程序正确性的四个层面: (1)不含语法错误 (2)程序对于n组输入数据能够得出满足规格说明要求的结果 (3)程序对于精心选择的典型、边界性的n组输入数据能得出满足规格说明要求的结果 (4)程序对于一切合适的输入数据都能得出满足规格说明要求的结果(穷举) 算法的效率指算法的执行时间,也称作算法的时间复杂度 算法的存储量需求指算法执行过程中所需的最大存储空间,也称作算法的空间复杂度 算法效率的度量 程序运行所耗费的时间(由下列因素决定): 算法所选用的策略 问题的规模——算法求解问题的输入量(或初始数据量) 书写程序所采用的语言 编译程序所产生的机器代码的质量 机器执行指令的速度 一个算法耗费的时间=算法中每条语句的执行时间之和 若不考虑机器硬、软件因素,可以认为算法“运行工作量”的大小是问题规模的函数。 设:执行每条语句所需时间为单位时间,则: 一个算法的时间耗费:f(n)=所有语句的频度之和 其中, n 为问题的规模 渐近时间复杂度(Asymptotic Time Complexity): O(f(n)) 随问题的规模n的增大, f(n)的增长和f(n) 的数量级(阶) O(f(n))的增长率相同。 时间复杂度:T(n)= O(f(n)) 数据结构(C语言版) Data Structure 主讲教师 马宁 计算机科学学院 软件工程教研室 学习的直接收益 编程基础 计算机专业考研课程 计算机等级考试课程 软件资格与水平考试课程 进入优秀企业的敲门砖 盖茨说:学通了这本书(程序设计技巧,共三卷,其中第一卷主要为数据结构)来找我吧! 请同学们重视本课程的学习。 总学时:64 学时 讲课学时:48 学时 实验学时:16 学时 教材: 《数据结构》( C语言版)严蔚敏、吴伟民 -----清华大学出版社 课程安排 《程序设计》课程与《数据结构》课程的关系 《程序设计》强调程序设计的基本概念和做法,如: 数据类型与表达式 程序流程控制 子程序 递归 数据抽象,等 《数据结构》强调程序设计思想和技术的典型应用,如: 线性表、栈、队列 检索、排序 图、树,等 两者的内容又有交叉 本课程的体系结构 第一章 绪论 介绍数据、数据结构和抽象数据类型的概念。 第二章 —— 第七章 基本数据结构 从抽象数据类型的角度, 分别讨论线性表、栈和队列、 串、数组和广义表、 树、图等基本数据结构及其应用。 1.1 数据结构学科的研究对象 什么是程序、软件? N.沃思(Niklaus Wirth)教授提出: 程序=算法+数据结构 以上公式说明了如下两个问题: (1)数据上的算法决定如何构造和组织数据 (算法→数据结构) (2)算法的选择依赖于作为基础的数据结构 (数据结构→算法) 软件=程序+文档(软件工程的观点) 第一章 绪论 2. 电子计算机的主要用途 ?早期: 主要用于数值计算。 ?后来: 应用逐渐扩大到非数值计算领域(能处理多种复杂的具有一定结构关系的数据)。 数据复杂→数据结构 3. 计算机解决问题的一般步骤 数学模型→算法→程序 (1)数值计算 数学模型→选择计算机语言→
您可能关注的文档
最近下载
- 机房搬迁方案.docx VIP
- Unit 3 Jobs 单元核心素养培优卷(含答案解析)七年级上册英语沪教版(五四学制)(2024).docx VIP
- 2025至2030中国换热器行业市场发展现状及发展趋势与投资前景预测报告.docx VIP
- 【推荐】伤口造口专科护士试题造口试题.docx VIP
- 钢材买卖合同-合肥高铁.doc
- 智能化掘进工作面设备操作规程.pdf VIP
- 动火、吊装、有限空间作业、高处作业、临时用电等危险作业排查表62.pdf VIP
- 人身保险新型产品基础知识及实务常见考点测试试卷.doc
- 六西格玛绿带手册知识点总结笔记.docx VIP
- 人教版八年级语文古诗词、文言文内容的汇编.doc VIP
文档评论(0)