lecture 1
第一章 绪论
1.1 什么是数据结构
1.2 基本概念和术语
数据: 对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素: 数据的基本单位,在计算机程序中通常作为一个整体考虑。一个数据元素通常有若干个数据项。
数据对象: 性质相同的数据元素的集合,是数据的一个子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
以下四类基本结构:
(1)集合
(2)线性结构
(3)树形结构
(4)图状结构或网状结构
数据结构在计算机中的表示(又称映像)成为数据的物理结构,又称为存储结构。
元素(节点):?
顺序映像和非顺序映像?
数据类型?
抽象数据类型?
面向对象?? 特点:封装,继承,多态。
基本操作:1)插入 2)删除 3)更新 4)查找 5)排序
加工型操作 引用型操作
1.4 算法的描述和算法分析
算法: 1)有穷性 2)确定性 3)可行性 4)输入 5)输出
算法设计的要求:
1)正确性:应当满足具体问题的需求;
a.程序不含语法错误
b.程序对于几组输入数据能够得出满足规格说明要求的结果
c.程序对于精心选择的典型,苛刻而带有***难性的几组输入数据能够得出满足规格说明要求的结果
d.程序对于一切合法的输入数据都能产生满足规格说明要求的结果
2)可读性
3)健壮性
4)效率与低存储量需求
和算法执行时间相关的因素:
1、算法选用的策略
2、问题的规模
3、编写程序的语言
4、编译程序产生的机器代码的质量
5、计算机执行指令的速度
问题规模n的某个函数f(n),算法时间度量记作 T(n)=O(f(n))
它表示随问题规模n的增大算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度 (通常考虑最坏情况)
空间复杂度
若额外空间相对于输入数据量来说是常数,则称此算法为原地工作。
算法的存储量包括:
1、输入数据所占空间
2、程序本身所占空间
3、辅助变量所占空间
算法 = 控制结构 + 原操作(固有数据类型的操作)
数据结构+算法 = 程序
基本操作:乘法操作
算法复杂度:O(n3)
本章学习要点
1、熟悉各名词、术语的含义,掌握基本概念
2、理解算法五个步骤要素的确切含义
3、掌握计算语句频度和估算算法时间复杂度的方法