数据结构:是计算机组织数据和存储数据的方式。是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式,以及定义在该组数据上的一组操作。合理的数据结构可以降低程序设计的复杂性,提高程序运行的效率。
算法 + 数据结构 = 程序
数据:所有可以被计算机存储,处理的对象。 例如 人
数据元素:数据的基本单位,在程序中作为一个整体被处理。是运算的基本单位,具有完整确定的意义。 例如小王
数据项:数据元素是由数据项组成的,通常又被称为字段或域。是数据的不可分割的最小标识单位。 例如 小王的年龄
逻辑结构:是指数据元素之间的逻辑关系。主要有
集合 : 任意两个节点之间没有临接关系,组织形式松散。
线性结构 :结点之间一个一个依次相临接。
树形结构 :具有分支、层次特性
图结构:任意两个结点可以相连
存储结构:包括 存储数据元素
数据元素之间的关联方式
顺序存储:所有存储结点存放在一个连续的存储区里。利用结点在存储器中的相对位置来表示数据元素之间的逻辑关系
链式存储方式:每个结点除了含有一个数据元素外,还包含指针,每个指针指向一个与本结点有逻辑关系的结点,用指针表示数据元素之间的逻辑关系。
索引存储方式和散列存储方
算法是指在某种逻辑结构上施加的操作,即对逻辑结构的加工。运算包括:建立,查找,读取,插入和删除等。
衡量算法好坏的因素:
正确性:能正确的实现预定的功能,满足具体问题的需要
易读性:易于阅读,理解和交流,便于调试、修改和扩充
健壮性:即使输入非法数据,算法也能做出适当的反应和处理,不会产生预料不到的运行结果
时空性:包括算法的时间性能和空间性能,前者表示算法的计算量,后者表示算法需要的存储量。
算法的时间复杂度 O(1) 、O(log2n)、、O(n)、O(n²)、O(n³)
算法的空间复杂度 S(n) 包括 程序代码所占用的空间、输入数据所占用的空间、辅助变量所占用的空间。