1.绪论
1.1起源
早期的计算机只是计算,将实际问题抽象为一个数学模型,并为之设计一个算法,再编写程序,最后得到一个实际app。可现实中,我们缺少的不是方法,而是时间,进而有了表,树,图等数据结构。
1.2基本概念及术语
1.2.1数据
描述客观事物的符号
前提:
- 可以输入计算机
- 能被计算机程序处理
1.2.2数据元素
组成数据,具有一定意义的基本单位(通常作为一个整体被计算机处理)
1.2.3数据项
数据元素的组成元素
eg:人(数据元素)由手,腿,头组成(数据项)
1.2.4数据对象
性质相同的数据元素的集合,为数据的子集
1.2.5数据结构
结构,即关系。不同数据元素之间存在的特定关系称为结构
数据结构:存在一种或多种特定关系的集合
1.2.5.1逻辑结构
数据对象中数据元素之间的相互关系
1.2.5.1.1集合结构
数据元素除了属于同一集合外没有其他关系
1.2.5.1.2线性结构
数据元素之间是一对一关系
1.2.5.1.3树形结构
一对多关系
1.2.5.1.4图形结构
多对多关系
1.2.5.2物理结构(存储结构)
数据的逻辑结构在计算机中的存储形式即物理结构
存储结构应正确反映数据元素之间的逻辑关系
1.2.5.2.1顺序存储结构
数据间的逻辑关系和物理(空间)关系是一致的
1.2.5.2.2链式存储结构
数据存在于任意存储单元里,并不一定连续
1.2.6数据类型
性质相同值的集合及定义在此集合上一些操作总称
1.2.6.1数据类型的定义
//提高空间的利用率
按照数值的不同而划分
*c语言中:
- 原子类型:不可再分类型:整型,实型/浮点型,字符型
- 结构类型:若干类型组合而成,可再分解(整型数组由整型数据组成
1.2.6.2抽象数据类型
- 一个数学模型及定义在该模型上的一组操作
- 定义仅取决于它的一组逻辑特性
- 抽象的数据类型不仅仅可以指那些被已经定义的数据类型,还可以通过编程者自己决定
- 抽象数据类型体现了程序设计中问题分解,抽象和信息隐藏的特性
2.算法
对于特定问题求解步骤的描述
2.1算法的设计要求
- 正确性
- 可读性
- 健壮性:输入数据不合法时能及时给出反馈
2.2算法效率的度量方法
2.2.1事后统计法
通过测试案列运行时间进行比较
2.2.2事前分析法
依据统计方法对于算法进行估算
(未完待续......)