有关数据结构基础知识(数据结构 严蔚敏版)
2015-12-30 15:27 迷你天才 阅读(419) 评论(0) 编辑 收藏 举报1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科
2. 研究包括逻辑结构和存储结构
1) 逻辑结构(从具体问题抽象出来的数学模型)分为
集合结构 线性结构 树结构 图结构(分类依据是元素之间的关系不同)
2)存储结构(也称物理结构 逻辑结构在计算机的存储表示)分为
顺序存储结构 链式存储结构
3. 抽象数据类型是由用户定义 表示应用问题的数学模型 以及定义在这个模型一组操作的总称 包括数据对象 数据对象上关系的集合 数据对象基本操作的集合
4. 算法(为了解决某类问题而规定的一组有限长的操作序列)
算法的五个特性:有穷性 确定性 可行性 输入和输出
算法优劣的评价:正确性 可读性 健壮性(鲁棒性) 高效性
5. 算法分析的两个主要方面
频度:一条语句重复执行次数;
规模:算法求解问题的输入量;
算法时间复杂度(即算法的运算时间 表示方法T(n)=O(f(n)))
常见的时间复杂度排列顺序
常数阶 对数阶 线性阶 线性对数阶 平方阶 立方阶 k次方阶
算法空间复杂度(表示方法S(n)=O(f(n)))
6.一些术语
- 数据:用客观事物的符号表示 是所能输入到计算机中并被计算机程序处理的符号的总称
- 数据元素:是数据的基本单位在计算机中通常作为一个整体处理和考虑
- 数据项:是组成数据的 有独立含义的 不可分割的最小单位
- 数据对象:是性质相同的数据元素的集合,是数据的子集
- 数据结构:是相互之间存在一种或多种特定关系的数据关系的集合
- 数据类型:一个值的集合和定义在这个值集上的一组操作的总称
附几道教科书上的习题:
1.与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。
A.存储结构 B.存储实现
C.逻辑结构 D.运算实现
2.以下说法正确的是( )。解释:数据元素是数据的基本单位,数据项是数据的最小单位,数据结构是带有结构的各数据元素的集合
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
3.(1)x=90; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++;
答案:O(1)
解释:程序的执行次数为常数阶。
(2)for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j]=0;
答案:O(m*n)
解释:语句a[i][j]=0;的执行次数为m*n。
(3)s=0;
for i=0; i<n; i++)
for(j=0; j<n; j++)
s+=B[i][j];
sum=s;
答案:O(n2)
解释:语句s+=B[i][j];的执行次数为n2。
(4)i=1;
while(i<=n)
i=i*3;
答案:O(log3n)
解释:语句i=i*3;的执行次数为 log3n。
(5)x=0;
for(i=1; i<n; i++)
for (j=1; j<=n-i; j++)
x++;
答案:O(n2)
解释:语句x++;的执行次数为n-1+n-2+……+1= n(n-1)/2。
(6)x=n; //n>1
y=0;
while(x≥(y+1)* (y+1))
y++;
答案:O(x^(1/2))
解释:语句y++;的执行次数为 x^(1/2)。