1、数据结构二元组(D, R)分别代表什么?
D代表数据元素的又穷集合,R代表D上关系的集合
2、数据结构包括哪两种结构?
数据的逻辑结构,数据的存储结构
3、数据的逻辑结构和数据的存储结构之间的关系是什么?
数据的逻辑结构面向所解决的问题,反应了数据内部的构成方式;而数据的存储结构面向计算机,目标是将数据及其逻辑关系存储到计算机的存储器中。一般情况下,一种逻辑结构可以采用多种存储结构来存储,而采用不同的存储结构,其对数据的处理效率往往不同
4、数据的逻辑结构可否独立数据的存储结构考虑,反之,数据的存储结构可否独立于数据的逻辑结构考虑?
数据的逻辑结构可以独立于数据的存储结构,这时因为数据的逻辑结构设计师在数据的分析阶段进行的,二数据的存储结构设计则是在数据的设计阶段进行的。反之,数据的存储结构不能独立于数据的逻辑结构,这是因为数据的存储结构是数据的逻辑结构在计算机存储中的映像。
5、具有某种逻辑结构数据在不同的存储结构下对其实施某种操作,其操作的时间效率可能不同,这种说法对吗?举例说明
正确。例如在长度为n的线性表中进行插入和删除操作,当线性表位顺序存储结构时,平局移动将近一半的数据元素的位置,操作时间复杂度位O(n),而在链式存储结构下则不需要移动数据元素的位置,操作时间复杂度为O(1),与线性表的长度无关。
6、算法的基本特性之一由算法的外部提供 n>=0个有限操作作为算法的输入。这里的0个输入表示什么意思?
0个输入指算法的输入不是通过键盘或者其他设备输入的,而是有算法的内部确定初始条件,或者通过算法内部诸如复制语句等方式给出所需要的变量的初值,被认为是一种特殊的输入,因此,在某些特殊情况下,一个算法可以没有输入。
7、“一个算法是正确的”是什么意思?
指当输入一组合理的数据时,能够在有限的运行时间内得出正确的结果,对于不合理的输入数据,能够给出相应的警告提示信息。
8、衡量一个算法质量优劣的基本标准是什么?
通常包括5个方面:1 算法的正确性,2 算法的的易读性,3 算法的健壮性, 4 算法的可移植性,5 算法的时空效率。
9、影响一个算法的时间效率的主要因素有哪些?
主要因素包括两个方面。1、解决的问题规模大小。2、算法执行“基本操作”的次数
10、已知在同一运行环境下实现相同功能的两个算法A和B,其中算法A的时间复杂度为O(2^n),算法B的时间复杂度位O(n^2),仅就时间复杂度而言,哪个更好?
分别对算法A和B时间复杂度取对数,得到nlog2和2logn,
所以n<4时A的时间复杂度不大于B的时间复杂度
n=4时,两个算法复杂度相同
n>4时,B算法好于A算法