绪论
基本概念
-
数据(Data):客观事物的符号表示,所有能够输入计算中并被计算机处理的符号的总称。
-
数据元素(Data Element):数据的基本单位,在计算机中作为一个整体进行考虑和处理。
-
数据项(Data Item): 是组成数据元素的、有独立含义的、不可再分的最小单位。
-
数据对象(Data Object): 是性质相同的数据元素的集合,是数据的子集。
-
数据结构(Data Structure): 相互之间存在一种或特定多种关系的数据元素的集合。"结构"就是数据元素之间存在的关系。
-
逻辑结构:从逻辑上描述数据,它与数据的存储无关,独立于计算机。2个要素:数据元素和关系
- 集合结构:属于同一集合的关系。
- 线性结构:一对一的关系。
- 树结构:一对多的关系。
- 图结构:多对多的关系。
-
存储结构(物理结构):数据对象在计算机中的存储。即要存储数据元素的数据,也要存储元素之间的逻辑关系。
-
顺序存储结构:借助元素在存储器上的相对位置来表示元素之间的关系。要求一片连续的空间。
-
链式存储结构:无需一片连续的空间,但是为了表示元素之间的关系,需要添加一个指针字段,保存后继元素的存储地址。
-
-
数据类型(Data Type):是一个值的集合和定义在这个值集上的一组操作的总称。
-
抽象数据类型(Abstract Data Type, ADT): 一般由用户定义,表示应用问题的数学模型,以及在这个模型上的一组操作的总称,包含数据对象、数据关系、基本关系。
算法
- 算法(Algorithm):为了解决某类问题而规定的一个有限长的操作序列。
- 有穷性: 必须在执行有穷步后停止,且每一步都必须在有限时间内完成。
- 确定性: 每种情况下所执行的操作必须是确定的。
- 可行性:算法中的所有操作都可以通过已经实现的基本操作执行有限次完成。
- 输入:零个或多个输入。
- 输出:一个或多个输出。
- 算法设计的要求
- 正确性
- 可读性
- 健壮性
- 效率与低存储量需求(高效性)
- 时间复杂度(Time Complexity): 算法时间的量度。
- 空间复杂度(Space Complexity):算法存储空间的量度。指算法实现时需要的辅助空间,与输入数据所需的存储量无关。
习题:
- 数据结构中,与所使用的计算机无关的是数据的()结构;
A) 存储 B) 物理 C) 逻辑 D) 物理和存储
答案:C
for (i=0; i<n; i++)
for (j=0; j<m; j++)
A[i][j]=0;
答:时间复杂度O(m*n)
3.
x=0;
for(i=1; i<n; i++)
for (j=1; j<=n-i; j++)
x++;
答:时间复杂度O(n²)
4.
i=1;
while(i<=n)
i=i*3;
答:时间复杂度O(log3n)