数据结构作业答案
第一章
单选题
1、下列关于算法的基本特征,说法不正确的是()。 能行性是算法中的每一个步骤必须能够实现且能达到预期的目的。 算法的确定性是指算法中的每一个步骤必须是有明确的定义,不允许模棱两可。
算法的有穷性是指算法必须能在有限的时间内做完。 算法与提供情报无关。
[D] 教师批改:D
2、算法的时间复杂度取决于()。 问题的规模 待处理的数据的初态
问题的难度 A 和 B
[D] 教师批改:D
3、下列选项中,不是算法基本特征的是()。 可行性 有穷性
确定性 高效率
[D] 教师批改:D
4、通常一个好的算法应达到的目标中,不包括()。 正确性 可读性
技巧性 健壮性
[C] 教师批改:C
5、在一般的计算机系统中,基本的运算和操作不包括()。 语法处理 算术运算
关系运算 数据传输
[A] 教师批改:A
6、工程上常用的分治法是()。 列举法 归纳法
减半递推技术 回溯法
[C] 教师批改:C
7、算法设计的要求包括()。
正确性 可读性
健壮性 唯一性
[ABC] 教师批改:A,B,C
8、算法的时间复杂度应该与()无关。
所使用的计算机 程序设计语言
基本运算的执行次数 程序编制者
[ABD] 教师批改:A,B,D
9、下列关于算法的描述中,不正确的有()。
算法即是计算机程序 算法是解决问题的计算方法
算法是排序方法 算法是解决问题的有限运算序列
[ABC] 教师批改:A,B,C
16、所谓算法是指( )。
教师批改:解题方案的准确而完整的描述
17、算法的基本特征有( )、()、()和()
教师批改:能行性、确定性、有穷性和拥有足够的情报。
18、一个算法通常由两种基本要素组成,它们是()和()。
教师批改:算法中对数据的运算和操作。
算法的控制结构。
19、工程上常用的几种算法设计方法有列举法、()、()、()、()和回溯法。
教师批改:归纳法、递推、递归、减半递推技术。
20、算法的复杂度主要包括()复杂度和()复杂度。
教师批改:时间、空间
综合题
设给定3个整数a,b,c,试写出寻找这3个整数的中数的算法;并分析在平均情况与最坏情况下,该算法分别要做多少次比较?
寻找这3个整数的中数的算法用C语言描述如下(中数m由函数值返回): int mid ( int a, int b, int c) { int m ; m=a ; if ( m>=b ) { if (m>=c) { if ( b>=c ) m=b ; else m=c ; } } else { if ( m<=c) { if (b>=c) m=c; else m=b ; } } return ( m ) ; }假设a,b,c中的每一个数为中数的概率相等(均为1/3)。由于当a为中数时需要比较2次,b或c为中数时均需要比较3次,因此,在平均情况下上述算法所需要的比较次数为2*(1/3)+3*(1/3)+3*(1/3)= 8/3 即在平均情况下,上述算法需要比较8/3次。在最坏情况下,上述算法需要比较3次(当b或c为中数时)。什么叫数据结构?数据结构对算法有什么影响? 数据结构是指相互有关联的数据元素的集合。因此,一个数据结构既要反映数据元素的信息,又要反映数据元素之间的关系。数据元素之间的关系可以是逻辑关系(通常用前后件关系来表示),也可以是数据元素在计算机中的存储位置。反映数据元素之间逻辑关系的数据结构称为数据的逻辑结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,又称为数据的物理结构。同一批数据元素的集合,采用不同的数据结构(特别是存储结构),其数据处理的效率是不一样的,主要体现在算法的时间复杂度与空间复杂度方面。比如:若只是对2~3个数进行排序,则用几个IF语句即可完成;而若对一般情况下的N个数进行排序,则要使用数组,通过(双重等)循环来完成。
试写出在顺序存储结构下逆转线性表的算法,要求使用最少的附加空间
顺序存储结构下逆转线性表的算法用C语言描述如下(其中ET为数据元素的类型):void invsl ( int n , ET a [ ] ) { int k ; ET t ; for ( k=0 ; k
39、 设循环队列的容量为70(序号为1~70),现经过