绪论
1.概念:
数据:统称---------------------------------------------------------------------------qq所有的数据
数据元素:可细分的数据整体----------------------------------------------------一个qq账号
数据项:数据元素的一项----------------------------------------------------------一个qq账号中的一项:qq昵称
数据结构:存在关系的数据元素的集合---------------------------------------你好友列表里的qq账号,存在关系
数据对象:具有相同性质但不一定存在关系的数据元素的集合---------腾讯所有的qq账号,不一定有关系但性质相同
———————————————————————————————————————————————————
数据类型:原子类型、结构类型
抽象数据类型:定义逻辑结构和运算而不关心存储结构,只定义不实现
错题:
1.可以用以上哪个概念来定义一个完整的数据结构?
2.循环队列和栈分别与逻辑结构还是存储结构相关?
3.链式存储节点内的地址单元是否连续?
2.三要素
逻辑结构: 集合、线性结构、树形结构、图状结构
物理结构/存储结构:顺序存储、链式存储、索引存储、散列存储
数据的运算:运算的定义(逻辑结构)和实现(存储结构)
3.算法
定义:对特定问题求解的一种描述,是指令的有穷序列,每条指令表示一个或多个操作
特性:有穷性、确定性、可行性
目标:正确性、可读性、健壮性、高效率和低存储
4.时间复杂度:最好/最坏/平均(n个时间和/n)时间复杂度
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
i=i*2======》log2n
5.空间复杂度:
(1)程序运行时内存=程序代码(不变)+数据(变化)---------数据是空间复杂度的关注点
(2)如果数据大小与n无关==》O(1):算法原地工作、所需空间为常量
(3)递归:单次空间x递归深度