第1章 算法与程序.ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法与数据结构 主讲教师:陈姝颖 QQ:304779566 邮箱:flyuphighchen@126.com 教材、参考书、课时安排 教材 算法与数据结构 宁正元 王秀丽编著 清华大学出版社 参考书 《数据结构》张乃孝等 高等教育出版社 《数据结构》严蔚敏等 清华大学出版社 《数据结构、算法与应用》(C++)Sartaj Sahni 著 机械工业出版社 《数据结构习题集》(C语言版) 严蔚敏、吴伟民 清华大学出版社 《数据结构习题与解析》(C语言篇) 李春葆编著 清华大学出版社课时安排 授课 :48学时 课程目标 了解数据结构及其分类、数据结构与算法的密切关系; 熟悉各种基本数据结构及其操作; 学会根据实际问题要求来选择数据结构; 掌握设计算法的步骤和算法分析方法,掌握数据结构在排序和查找等常用算法中的应用; 深透地理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,培养基本的、良好的程序设计技能,编制高效可靠的程序,为学习操作系统、编译原理和数据库等课程奠定基础。 算法与数据结构 第1章 算法与程序 第2章 常用数据结构 第3章 简单数据结构 第4章 树和二叉树 第5章 图与网 第6章 数据结构的程序实现 第7章 检索及基本算法 第8章 排序及基本算法 算法与数据结构 第1章 算法与程序 第1章 算法与程序 第1章 算法与程序 1.1 算法的基本概念 1.1.1 什么是算法 1.1.2 算法的基本特性 什么是算法 早在公元前300年左右出现的著名的欧几里德算法,就描述了求解两个整数的最大公因子的解题步骤。要求解的问题描述为:“给定两个正整数m和n,求它们的最大公因子,即能同时整除m和n的最大整数”。欧几里德当时给出的算法如下: ⑴ 以n除m,并令所得余数为r(必有rn); ⑵ 若r=0,输出结果n,算法结束;否则继续步骤⑶; ⑶ 令m=n和n=r,返回步骤⑴继续进行。 什么是算法(续) 由此,我们可以得出这样的结论,算法就是求解问题的方法和步骤。这里的方法和步骤是一组严格定义了运算顺序的规则;每一个规则都是有效的,且是明确的;按此顺序将在有限次数下终止。 什么是算法(续) 算法的形式化定义如下所述: 算法是一个四元组,即(Q,I,Ω,F)。 其中: Q是一个包含子集I和Ω的集合,它表示计算的状态; I表示计算的输入集合; Ω表示计算的输出集合; F表示计算的规则,它是由Q至它自身的函数,且具有自反性,即对任何一个元素q∈ Q,有F(q)=q。 什么是算法(续) 一个算法是对于任何的输入元素x,都在有穷步骤内终止的一个计算方法。 在算法的形式化定义中,对任何一个元素x∈I,x均满足性质 x0=x,xk+1=F(xk),(k≥0) 该性质表示任何一个输入元素x均为一个计算序列,即x0,x1,x2,…,xk;该序列在第k步结束计算。 1.1 算法的基本概念 1.1.1 什么是算法 1.1.2 算法的基本特性 算法的基本特性 输入(Input) 输出(Output) 确定性(Definiteness) 有穷性(Finiteness) 有效性(Effectiveness) 算法的基本特性 例题: void exam() {n=2; while(n%2==0) {n=n+2; 输出n; } } 违反有穷性 第1章 算法与程序 1.1 算法的基本概念 1.2 算法的表示 1.3 算法的设计与评价 1.4 算法与程序 1.2 算法的表示 1.2.1 自然语言表示 1.2.2 流程图表示 1.2.3 N—S图表示 1.2.4 伪代码表示 1.2.5 程序语言表示 自然语言表示 自然语言即人们日常使用的语言,如汉语、英语、日语、法语、德语等等。使用自然语言描述算法,人们比较容易接受和理解。如前面的欧几里德算法就是用自然语言描述的。然而,自然语言也具有许多缺点,在使用自然语言描述算法时一定要引起注意: 自然语言存在着歧义性,容易导致算法的不确定性; 自然语言容易冗长,使得描述不够简洁; 自然语言的表示形式是顺序的,描述分支选择和转移时不够直观; 自然语言与计算机程序设计语言的差别较大,不易转换为程序。 1.2 算法的表示 1.2.1 自然语言表示 1.2.2 流程图表示 1.2.3 N—S图表示 1.2.4 伪代码表示 1.2.5 程序语言表示 流程图表示 流程图是描述算法的图形工具,它采用如下所示的一组图形符号来表示算法: 流

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档