数据结构与算法基础

328 阅读3分钟

数据结构核心名词解释

数据: 程序的操作对象,用于描述客观事物.

数据的特点: 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所占储存空间的函数