最近在复习数据结构,期末了,整理一下。因为我学过一点JavaScript,所以会用两种语言进行描述。
绪论
程序 = 算法 + 数据结构
程序:为计算机处理问题编制的一组指令集。
算法:处理问题的策略。
数据结构:问题的数据模型。
数据结构: 顾名思义,是相互之间存在一种或多种特定关系的数据元素的集合。
数据与数据结构
数据:是对客观事务的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据项:多个数据项可组成一个数据元素,数据项是数据的不可分割的最小单位。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构分类:几何结构、线性结构、树形结构、图状结构。
集合结构
线性结构
树形结构
图状结构
数据结构包括“逻辑结构” 和“物理结构”两个方面(层次):
逻辑结构 是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合上的若干关系来表示;
物理结构 是逻辑结构在计算机中的表示和实现,故又称“存储结构” 。
数据结构的形式定义描述为:
数据结构是一个二元组:
Data_Structures = (D, S)
D是数据元素的有限集,S是D上关系的有限集。
在不同的语言中,存储结构可有不同的描述方法:
当用高级程序设计语言进行编程时,通常可用高级编程语言中提供的数据类型描述之。
二、数据类型
在JavaScript或者C语言中会有各自的数据类型,不过不同的是,JavaScript是弱类型语言(数据类型可以被忽略)。
C语言中提供的基本数据类型有:
- 整型 int
- 浮点型 float
- 双精度 double
- 字符型 char
- 逻辑型 bool
JavaScript中提供的基本数据类型有:
数据类型是一个值的集合和定义在此集合上的一组操作的总称。
三、算法和算法分析
算法——是对特定问题求解步骤的一种描述,是有限指令集。
算法的五个特性:有穷性、确定性、可行性、输入、输出。
算法设计原则:正确性、可读性、健壮性、高效率与低储量需求
度量算法效率的方法:事后统计法、事前分析估算法
如何估算算法的时间复杂度?
- 算法的执行时间:
所有语句执行时间的总和 = 语句的执行次数*执行一次所需要的时间