数据结构
数据:是能够输入到计算机,且能够被计算机所识别处理,存储和显示;
数据元素:是数据的基本单位;
数据项:是数据元素的基本单位;
数据结构:是数据与数据之间的逻辑、存储以及运算。
1.
关系
---
逻辑结构
就是数据之间的抽象关系(先后、从属、邻接、层次)
四种:集合、线性结构、树形结构、图形结构;
2.
存储
---
存储结构
就是数据的逻辑结构在计算机中进行存储方式
四种:顺序存储、链式
(
离散
)
存储、索引存储、散列存储;
3.
运算
---
数据操作
能够对数据进行操作
增、删、改、查、排序。
算法
算法和程序
- 算法就是解决问题的方式方法(步骤);
- 程序就是在计算机中以计算机语言的具体实现。
区别:
- 算法不一定依赖于计算机语言,是方法描述;
- 程序是必须依赖于计算机语言;
- 算法是有穷的,程序可以是无穷的。
算法与数据结构
- 算法设计:依赖于数据结构的逻辑结构
- 算法实现:依赖于数据结构的存储结构
程序
=
数据结构
+
算法
算法的好坏判断
- 正确性;
- 效率:消耗时间多少、消耗空间多少;
- 编程:算法的结构要好,易于理解、编写、调试;
算法的效率度量
- 时间复杂度:
所有执行的语句的语句频度之和就是算法的语句执行次数,叫做时间复杂度 T(n), 问题规模 n
-
#include <stdio.h> int main() { //计算1-100 int sum = 0; for(int i = 1;i <= 100;i++)//语句在循环中,执行的次数是不一定,使用问题规模n 来表示 { sum += i; } } //T(n) = 1 + 1 + n + n + n = 3n + 2
T(n)=3n+2大 O 表示法, n 趋近于无穷大O(n)=n -
空间复杂度: 占用空间的大小,叫做空间复杂度S(n)