数据结构(Java版)绪论

一、数据结构绪论

1、概论

数据结构研究计算机的操作对象以及他们之间的关系操作

数据结构(Java版)绪论_第1张图片

2、算法的定义、特征、设计要求

算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转化为输出的计算步骤。
算法的特征:输入、输出、有穷性、确定性、可行性。
算法的设计要求:正确性、可读性、健壮性、效率与低存储量需求。

3、算法复杂度

通常我们用时间复杂度空间复杂度来衡量一个算法的优劣。

3.1 时间复杂度

从时间的维度上对算法进行衡量,忽略程序具体的运行时间,从算法整体方面去考虑 ,通常使用:「 大O符号表示法 」,

即 T(n) = O(f(n))。利用 大O符号有三个作用:

​ 限制忽略数学公式中低阶项产生的误差;

​ 限制由于忽略程序中对运行时间贡献小的部分产生的错误;

​ 允许我们按照算法总运行时间的上界对算法进行分类。

常见的时间复杂度量级有:常数阶O(1) < 对数阶O(logN)、线性阶O(n)、线性对数阶O(nlogN)、平方阶O(n²)、立方阶O(n³)、
K次方阶O(nk)、 指数阶O(2n)。

时间复杂度由优逐渐变差

3.2 空间复杂度

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的一个量度,同样反映的是一个趋势,我们用 S(n) = O(f(n))来定义。

常见的空间复杂度量级有:O(1)、O(n))、O(n²)

你可能感兴趣的:(数据结构与算法,算法)