数据结构_第一章_绪论

第一章 绪论

1.1 数据结构在程序设计中的作用
1.2 本书讨论的主要内容
1.3 数据结构的基本概念
1.4 算法与算法分析

1.1 数据结构在程序设计中的作用

数据结构发展的三个阶段
(1)无结构阶段
(2)结构化阶段:
程序=数据结构+算法
(3)面向对象阶段:
对象=数据结构+算法
程序=对象+对象+。。。。
用计算机求解问题的过程
(1)抽象出问题的模型
(2)求该模型的解

1.2数据结构的研究对象

(1)数据的逻辑结构
(2)数据的存储结构
(3)算法

1.3数据结构的基本概念

数据(Data):是对客观事物的符号表示,在计算机科学中是指能输入到计算机并被计算机程序处理的符号的总称。
数据元素(Data Element):是数据的基本单位,也可以称为结点,在计算机程序中通常作为一个整体进行考虑。
数据处理(Data Process):对数据进行检索、插入、删除、合并、拆分、排序、统计、计算、转换、输入、输出等的操作过程。
数据结构(Data Structure):
相互之间存在一定关系的数据的集合。
是数据及其元素之间相互关系的表示。
逻辑结构:数据元素之间一般存在某种特定的关系,这种关系称为数据的逻辑结构。
物理结构(存储结构):数据结构在计算机内存中的表示形式。包括数据元素的表示和其关系的表示。
逻辑结构
线性结构(linear structure)
树型结构(tree structure)
图结构(graph structure)
集合(set)
存储结构
1 顺序结构
2 链式结构
抽象数据类型
由用户定义,用以表示应用问题的数据模型。
ADT是指一种数据结构以及定义在该数据结构上的一组操作。
由基本的数据类型组成, 并包括一组相关的服务(或称操作)。
信息隐蔽和数据封装,使用与实现相分离。
ADT的定义
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作 1
前置条件:执行此操作前数据所必须的状态
输入:执行此操作所需要的输入
功能:该操作将完成的功能
输出:执行该操作后产生的输出
后置条件:执行该操作后数据的状态
操作 2
……
……
操作 n
endADT

1.4算法

算法(algorithms): 是为了求解问题而给出的有限的指令序列,每条指令表示一个或多个操作。——解决问题的步骤。
程序:是算法的一种实现,计算机按照程序逐步执行算法,实现对问题的求解。
算法的性质
有穷性:一个算法必须能在执行有穷步之后结束,且每一步都可在有穷时间内完成;
确定性:算法中每一条指令必须有确切的含义,不具有二义性。
可行性:算法中描述的操作都可通过已经实现的基本运算执行有限次来实现。
输入:一个算法有零个或多个输入,这些输入取自某个特定的对象的集合。
输出:一个算法有一个或多个输出,这些输出是同输入具有某种特定关系的量。
描述算法的方法
自然语言
流程图
程序设计语言
伪代码等
时间复杂度
算法的执行时间(所有语句的语句频度之和)
T(n)=n+1+n(n+1)+n2=2n+2n2+1
问题规模:求解问题的输入量
lim T(n)/n2=lim(2n+2n2+1)/2n2=1
n->∞
当问题规模 n→∞时T(n)与某一量同阶,称作算法的渐近时间复杂度 (asymptotic time complexity,随着问题规模的增加,算法运行时间的增长趋势) :
记作:T(n)=O(n2) O是order的简写
时间复杂度只与算法中语句频度最大的语句(基本语句)有关, 而其它语句的时间可以不计用F(n)代表算法中语句频度最大的语句的频度(基本语句)则T(n)=O(F(n)): 时间复杂度: T(n)=O(F(n))
空间复杂度
算法的空间复杂度是指在算法的执行过程中,需要的辅助空间数量。
辅助空间是除算法本身和输入输出数据所占据的空间外,算法临时开辟的存储空间。通常记作:
S ( n ) = O ( f ( n ))
其中, n 为问题规模,分析方法与算法的时间复杂度类似。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值