数据结构
数据结构的三要素
- 逻辑结构:数据元素之间的逻辑关系
- 集合
- 线性结构
- 树形结构
- 图形结构
- 物理结构、存储结构:数据及其逻辑关系在计算机中存储的方式,不同语言实现的方式可能不同
- 顺序存储
- 链式存储
- 索引存储
- 散列存储(哈希Hash存储)
- 数据的运算
算法
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列。
算法的特性:输入、输出、有穷性、确定性和可行性。
- 算法具有零个输入或多个输入
- 算法至少有一个或多个输出
- 算法在执行有限的步骤之后,自动结束而不会出现无限循环
- 每一步都是有确定的含义,不会出现二义性
- 每一步必须是可行的
算法设计的要求:正确性、可读性、健壮性、时间效率高和存储量低
算法复杂度
时间复杂度
时间复杂度T(n)最简单的描述就是:计算机运行一个算法时,程序代码被执行的总次数
程序代码的执行总次数一般与问题规模有关
T(n)=O(f(n))
时间复杂度关心的是数量级,所以对f(n)的表达式需要简化,1)略去常数,2)只保留最高阶的项,3)最高阶项系数为1
一般有常数阶
O
(
1
)
O(1)
O(1),线性阶
O
(
n
)
O(n)
O(n),平方阶
O
(
n
2
)
O(n^2)
O(n2),对数阶
O
(
l
o
g
n
)
O(logn)
O(logn)等。
空间复杂度
空间复杂度S(n)指算法消耗的内存空间
S(n)=O(f(n))