- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机软件技术基础
第4章 算法与数据结构
本章简介
• 在编写计算机程序时,需要明确将要处理的数据对象和组
织方式,需要理解如何去处理这些数据才能得到理想的结
果,这时就会涉及算法和数据结构的问题。
• 数据结构描述了数据对象的组织方式,算法描述了处理这
些数据的详细过程,甚至有专家提出了程序等于算法加数
据结构的论断。
• 由此可以看出,在计算机软件技术领域中,描述程序的数
据和过程的算法与数据结构是非常重要的内容。
• 理解算法与数据结构的基本思想和方法,对于编写高性能
的程序有着重要的帮助。
• 本章将研究算法和数据结构的基本思想和典型方法。
本章提要
4.1 算法概述
4.2 递归法
4.3 搜索算法
4.4 排序算法
4.5 数据结构概述
4.6 集合
4.7 线性表
4.8 树
4.9 图
4.1 算法概述
4.1 算法概述
• 本节将从以下5个方面对算法进行概述。
• 首先,分析几个典型的算法示例情景;
• 然后,给出算法的定义和基本特征;
• 接下来,讨论算法的表示方法;
• 第四,研究和分析评价算法优劣的方法;
• 最后,讲述程序设计领域中的典型算法。
4.1.1 算法示例
• 在编写计算机程序时,研究和选择合理的
算法是一项非常重要的工作。
• 无论是数学领域的科学计算,还是管理领
域、工程领域的数据处理,都离不开对算
法的研究和应用。
• 下面,讨论几个典型的算法应用场景示
例。
4.1.2 算法的概念
• 一般地认为,算法(algorithm)是一系列有限的解决问题的
指令。也就是说,算法是指能够对一定的规范的输入,在
有限时间内获得所要求的输出。
• 算法也可以理解为是由规定的运算顺序所构成的完整的解
题步骤。
• 还有些专家认为,算法是一个有穷规则的集合,这些规则
规定了解决特定问题的运算序列。
• 被称为Pascal语言之父的瑞士计算机专家Niklaus Wirth
教授在1975出版的图书中,提出了“算法+数据结构=程
序”的著名论断,并且将该论断作为其图书的名称。由此
可见,算法与计算机程序关系的密切程度。
算法的基本特征
• 算法的5个基本特征:
• 有穷性(finiteness)、
• 确定性(definiteness)、
• 输入(input)、
• 输出(output)和
• 可行性(effectiveness)。
4.1.3 算法的表示方式
• 表示算法的方式有多种,常用的方法包括
自然语言、流程图、程序设计语言、形式
化方法等。
• 不同的表示方法有不同的特点和作用。
自然语言
• 自然语言方式是指用普通语言描述算法的方法。
• 例如,在求一元二次方程的根时,就可以使用这
种表示方式:“一元二次方程的根的计算公式是,
在a不等于0的情况下,分子是负b加减b的平方减
去4ac 的平方根,分母是2a 。”
• 自然语言方式的优点是简单、方便,适合描述简
单的算法或算法的高层思想。
• 但是,该方式的主要问题是冗长、语义容易模
糊,很难准确地描述复杂的、技术性强的算法。
流程图
• 流程图是一种用于表示算法或过程
的图形。在流程图中,使用各种符
号表示算法或过程的每一个步骤,
使用箭头符号将这些步骤按照顺序
连接起来。
• 使用流程图表示算法可以避免自然
语言的模糊缺陷,且依然独立于任
何一种特殊的程序设计语言。
• 流程图的使用人员包括分析人员、
设计人员、管理人员、工程师、编
程人员等。
• 如图4-1所示是一个典型的流程图
示例,该图描述了计算前N项整数
之和的算法流程。
一般流程图
• 流程图有多种类型,
文档评论(0)