数据结构1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1 请说明算法具有哪些特性,各是什么含义?
算法的一般性质包括:(1)通用性对于那些符合输入类型的任意输入数据,都能根据算法进行问题求解,包保证计算结构的正确性.(2)有效性组成算法的每一条指令都必须是能够被人或机器确切执行的.(3)确定性算法每执行一步之后,对于它的下一步,应该有明确的指示.即,保证每一步之后都有关于下一步动作的指令,不能缺乏下一步指令或仅仅含有模糊不清的指令.(4)有穷性算法的执行必须在有限步内结束.
1.2简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类
型和抽象数据类型。
数据:指所有能够输入到计算机中并被计算机程序处理的符号集合。数据元素(data element):数据集合中的一个实体,是计算机程序中加工处理的基本单位。例如:一条学生记录(包括学号、姓名、年龄等)就是一个数据元素数据对象(data object):性质相同的数据元素的集合。是数据的一个子集。数据结构(data structure):相互之间存在一种或多种关系的数据元素的集合。即包括数据元素的集合和数据元素之间的关系的集合。存储结构:数据结构在计算机中的表示(也称映像)叫做物理结构。又称为存储结构。数据类型(data type):是一个“值”的集合和定义在此集合上的“一组操作”的总称。抽象数据类型(abstract data type,简称ADT):是指一个数学模型以及定义在此数学模型上的一组操作。1.3设n为正整数。试确定下列各程序段中前置以记号@的语句频度:
(1) x=n; y=0; //n为不小于1的常数
while (x>=(y+1)*(y+1)) {
@ y++;
}
n1/2向下取整
(2) i=1; j=0;
while (i+j<=n) {
@ if (i>j) j++;
else i++;
}
n
注:@语句指的是if…else语句,语句频度为j++和i++执行的次数之和。
1.4请说明下列算法的时间复杂度。
(1) void sf1 (int n)
{ int i, x=0;
for(i=1; i for(j=1; j<=8; j++) x+=2; } (2) void sf2 (int n, int m) { for (i=0; i for(j=0; j x++; } 1.1算法的一般性质包括: (1)通用性对于那些符合输入类型的任意输入数据,都能根据算法进行问题求解,包保证计算结构的正确性. (2)有效性组成算法的每一条指令都必须是能够被人或机器确切执行的. (3)确定性算法每执行一步之后,对于它的下一步,应该有明确的指示.即,保证每一步之后都有关于下一步动作的指令,不能缺乏下一步指令或仅仅含有模糊不清的指令. (4)有穷性算法的执行必须在有限步内结束. 1.2 数据:指所有能够输入到计算机中并被计算机程序处理的符号集合。 数据元素(data element):数据集合中的一个实体,是计算机程序中加工处理的基本单位。例如:一条学生记录(包括学号、姓名、年龄等)就是一个数据元素数据对象(data object):性质相同的数据元素的集合。是数据的一个子集。 数据结构(data structure):相互之间存在一种或多种关系的数据元素的集合。即包括数据元素的集合和数据元素之间的关系的集合。 存储结构:数据结构在计算机中的表示(也称映像)叫做物理结构。又称为存储结构。 数据类型(data type):是一个“值”的集合和定义在此集合上的“一组操作”的总称。 抽象数据类型(abstract data type,简称ADT):是指一个数学模型以及定义在此数学模型上的一组操作。 1.3 (1) n1/2向下取整 (2) n 1.4 (1) o(8*n) 去常数项就是o(n) (2) o(m*n)