文档介绍:算法和数据结构程序=算法+数据结构
算法
数据结构
算法
算法是解决问题的方法与步骤
例:有三个硬币,其中一个是伪造的,另两个是真的,伪币与真币重量略有不同。现在提供一座天平,如何找出伪币呢?
分析:
方法明确而有序
按提供的条件进行操作
任何人均可仿照进行(共享智能)
开始
C是伪币
B是伪币
A是伪币
A=B?
A=C?
是
否
否
是
算法是计算机软件的灵魂
计算机的通用性是因为它能运行各种各样的程序,而程序之所以能解决问题,是因为它所体现了正确的算法
算法所解决的是一类问题而不是一个特定的问题,例如
排序(sort) 可以是表格内容的排序,也可以是文件夹中文件的排序,可以按数字或文字排序,也可以按日期排序,等等
查找(search), 可以在文档中查找某个单词或在硬盘中查找某个文件,也可在Web上查找某个网页,等等
开发计算机应用的核心是:根据实际问题给出解题的算法,然后再将该算法在计算机上实现(即开发成为软件)
计算机算法的4个特点
目的:完成某个特定的信息处理任务
必须满足的性质:
①确定性:算法中每一步操作的含义必须清楚明确,无二义性
②能行性: 算法中有待实现的操作都是计算机可执行的,即必须在计算机的能力范围之内,且在有限时间内能够完成
③有穷性: 算法在执行了有限步操作后必须结束
④算法结束后至少产生一个输出(包括参量或状态的变化)
数据结构
算法(程序)的组成
算法(程序) 由2个部分组成:
进行的操作
所涉及的操作对象(数据)
算法
操作对象
操作步骤与条件
程序
说明所要处理的数据的名字和类型
描述所要执行的算法
说明语句
命令语句
什么是数据结构?
数据结构研究如何在计算机中表示被处理的对象及对象之间的关系,即如何组织数据。例如:
选择排序中,未排序整数和已排序整数如何表示?
排序算法中,排序的对象若不是整数而是姓名如何表示?是文件夹中的文件名又如何表示?是表格中的“行”又如何表示?
Word文档中插入的表格和图片如何表示?
Windows操作系统中菜单如何表示?对话框如何表示?窗口如何表示?
计算机下棋时,棋盘和棋局如何表示?
精心设计的数据结构可使算法获得更高的时间效率或空间效率
数据结构的内容
1 数据的抽象(逻辑)结构,即数据结构中包括哪些元素,相互之间有什么关系等。例如:
2 数据的物理(存储)结构,即数据的抽象结构如何在实际的存储器中予以实现,数据元素如何表示,相互关系如何表示等
3 定义在数据结构上的一组运算(操作)及其实现方法
线性结构
网状结构
树形结构
集合结构
数据结构的实现——存储结构
顺序存储结构:
借助数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系
链接表存储结构:
利用地址指针来表示元素之间的逻辑关系
a1
a2
低地址
高地址
a2是a1的后继元素
a1
a2
a2是a1的后继元素