三要素与五个特征
- 什么是数据结构
- 数据结构的三要素
- 逻辑结构
- 存储结构
- 数据的运算
- 算法的五个特征
- 时间复杂度
什么是数据结构
数据元素之间存在着一种或者多种关系,这种关系称为结构。
数据结构的三要素
数据结构的三要素:逻辑结构、存储结构、数据的运算。
逻辑结构
逻辑结构是数据之间的逻辑关系。
数据的逻辑结构分为线性结构和非线性结构。
线性结构的代表为线性表;
非线性结构有集合、树、图等。
存储结构
数据的存储结构又称为物理结构。数据的存储结构是用计算机语言实现的逻辑结构。
数据的主要存储结构包括:顺序存储、链式存储、索引存储和散列存储。
顺序存储:逻辑上相邻的元素在物理位置上也相邻。
链式存储:借助指针,逻辑上相邻的元素物理位置不相邻。
索引存储:借助索引表,将元素的物理位置记录。
散列存储:又称为哈希存储,通过计算得到物理位置地址。
数据的运算
数据的运算包括运算的定义和实现。
数据的定义是针对逻辑结构,指出运算的功能;
数据的实现是针对存储结构,指出运算的步骤。
算法的五个特征
有穷性:算法不能无穷执行;
确定性:对于相同的输入有相同的输出;
可行性:可以实现;
输入:一个算法有零个或多个输入;
输出:一个算法有一个或多个输出。
时间复杂度
时间复杂度为代码中执行最多那句话执行的次数的指数。
void fun(int n) {
int i = 1;
while(i <= n) {
i = i * 2;
}
}
代码中执行次数最多的为循环内的语句:
i = i * 2
该语句执行次数为: l o g 2 n log_2n log2n,所以其时间复杂度为: O ( l o g 2 n ) O(log_2n) O(log2n)
加法规则
T
(
n
)
=
T
1
(
n
)
+
T
2
(
n
)
=
O
(
f
(
n
)
)
+
O
(
g
(
n
)
)
=
O
(
m
a
x
(
f
(
n
)
,
g
(
n
)
)
)
T(n)=T_1(n)+T_2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))
T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))
乘法规则
T
(
n
)
=
T
1
(
n
)
∗
T
2
(
n
)
=
O
(
f
(
n
)
)
∗
O
(
g
(
n
)
)
=
O
(
f
(
n
)
∗
g
(
n
)
)
T(n)=T_1(n)*T_2(n)=O(f(n))*O(g(n))=O(f(n)*g(n))
T(n)=T1(n)∗T2(n)=O(f(n))∗O(g(n))=O(f(n)∗g(n))