数据结构核心名词解释
数据: 程序的操作对象,用于描述客观事物.
数据的特点: 1️⃣ 可以输入到计算机 2️⃣ 可以被计算机处理
数据项: 一个数据元素由若干数据项组成
数据元素: 组成数据的对象的基本单位
数据对象: 性质相同的数据元素的集合(类似于数组)
结构: 数据元素之间不是独立的,存在特定的关系.这些关系即是结构;
数据结构:指的数据对象中的数据元素之间的关系
抽象数据类型
数据类型 是指一组性质相同值的集合以及定义在此集合的一些操作的总称,在C语言汇总,按照取值的不同,数据类型可以分为2类
原子类型:
是不可以在分解的基本数据类型,包含整型,浮点型,字符型等
结构类型:
由若干类型组合而成,是可以再分解的,例如整型数组就是若干整型数据组成的
逻辑结构与物理结构区别
逻辑结构
集合结构 无序
线性结构 :一对一结构都是线性结构,数组 (队列 堆 特殊的数据结构) 字符串
树形结构: 一对多关系 例如:二叉树 红黑树
图形结构:多对多
物理存储结构:
1 顺序存储 开辟一段连续的内存然后依次进行存储,例如数组,读取方便,插入麻烦
2 链式存储 不需要提前开辟空间->插入方便,读取麻烦
数据结构与算法之间的关系
算法解释
算法就是解决特定问题求解步骤的描述,在计算机中变现为指令的有限序列,并且每个指令表示一个或多个操作 ;
特点:输入 输出 有穷性 确定性 可行性 , 评价标准:正确性 可读性 健壮性 高效性;
效率度量:时间复杂度和空间复杂度
时间换空间和空间换时间这句话不是绝对的
大O表示法:
1. 用常数1取代运行时间中所有常数 3->1 O(1)
2. 在修改运行次数函数中,只保留最高阶项 n^3+2n^2+5 -> O(n^3)
3. 如果在最高阶存在且不等于1,则去除这个项目相乘的常数 2n^3 -> n^3
时间复杂度术语:
1. 常数阶
2. 线性阶
3. 平方阶
4. 对数阶
5. 立方阶
6. nlog阶
7. 指数阶(不考虑) O(2^n)或者O(n!) 除非是非常小的n,否则会造成噩梦般的时间消耗. 这是一种不切实际的算法时间复杂度. 一般不考虑!
算法效率衡量方法
算法的空间复杂度通过计算算法所需的储存空间实现,算法空间复杂度的计算重视记做:S(n) = n(f(n)),其中,n为问题的规模,f(n)为语句关于n所占储存空间的函数