数据结构三要素
1. 逻辑结构:数据元素之间组织排列的形式。
线性:一般线性表,受限线性表(栈、队列、串),线性表的推广(数组)
非线性:树(一般树、二叉树),图(有向图、无向图),集合
2. 存储结构(物理结构):元素在计算机中存储的方式。
顺序存储:只能用相邻的整块存储空间,产生外部碎片
链式存储:需额外空间,无碎片
索引存储:建索引表,修改索引表
散列(哈希)存储:根据关键字计算出地址,要解决冲突问题
3. 数据的运算:包括运算的定义和实现
定义:针对逻辑结构,指出运算的功能;
实现:针对存储结构,指出具体操作。
算法
1. 五个特性
有穷性:步骤、所需时间有穷
确定性:指令含义确定,相同输入的输出确定
可行性:可利用基本运算来实现
输入:零个或多个输入,取自特定对象集合
输出:至少一个输出,输出量与输入量有关
2. 算法效率的度量
时间复杂度:最深层循环/增长最快的语句的频度。(常<对<幂<指<阶)
空间复杂度:对数据处理操作的辅助空间。原地工作即O(1) 。