如果我不能亲手搭建起来一个东西,那么我就不能理解它。 -- 美国物理学家理查德·费曼
是指相互之间存在一种或多种特定关系的数据元素的集合用计算机存储、组织数据的方式。数据结构分别为逻辑结构、(存储)物理结构和数据的运算三个部分。
数据的逻辑结构是对数据之间关系的描述,他与数据的存储结构无关,同一种逻辑可以有多种存储结构。
- 线性结构
- 非线性结构
数据的物理结构又称为存储结构,是数据的逻辑结构在计算机中的表示。
- 顺序存储方法
- 链式存储方法
- 索引存储方法
- 散列存储方法
算法可以理解为由基本运算和规定的运算顺序所构成的完整的问题解决步骤。
(1)有穷性
一个算法必须保证执行有限步之后结束
(2)确定性
算法的每一步骤都必须有确定的定义
(3)输入
一个算法有0个或多个输入
(4)输出
一个算法有一个或多个输出,以反应对输入数据加工后的结果
(5)可行性
算法中的所有操作都必须可以通过已经实现的基本操作进行计算,并在有限次内实现。
(1)正确性
要求算法能够正确的执行预先规定的功能和性能要求。这是最基本的标准
(2)可读性
要求算法易于理解
(3)健壮性
要求算法有很好的容错性,能够对不合理的数据进行检查
(4)高效率与第存储量需求
算法的效率主要是指算法的执行时间
算法的存储量是指算法执行过程中所需要的最大存储空间
数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。
{% embed url="https://labuladong.gitbook.io/algo/" %}