(1)对线性表采用折半查找,该线性表必须_______。
A、元素按值有序排列
B、采用顺序结构
C、元素按值有序排列,并且采用顺序存储结构
D、元素按值有序排列,并且采用链式存储结构
答案:C
(2)有个长度为12的无重复有序表,按折半查找法进行查找,在表内各元素等概率情况下,查找成功所需的平均比较(三元比较)的次数为()
A、35/12
B、37/12
C、39/12
D、43/12
答案:B
解析:此题按照一颗完全二叉树来考虑,12个结点是4层,所以为(1*1+2*2+4*3+5*4)/12
按照完全二叉树进行层次历遍,总共分为四层,分为12个节点,公式括号内的乘号的后面的数字代表的层数,前面的数字
代表每层节点的个数。
(3)下列有关图的遍历说法中,不正确的是()
A、有向图和无向图都可以进行遍历操作
B、基本遍历算法两种:深度遍历和广度遍历
C、图的遍历必须用递归实现
D、图的遍历算法可以执行在有回路的图中
答案:C
解析:,图的遍历分为递归和非递归实现,即为深度遍历和广度遍历
(4)执行()操作时,需要使用队列做辅助存储空间
A、查找哈希(Hash)表
B、广度优先搜索网
C、前序(根)遍历二叉树
D、深度优先搜索网
答案:B
解析: 深度优先搜索要借助栈;
广度优先搜索要借助队列;
(5)在一个有8个int数据的数组中,随机给出数组的数据,找出最大和第二大元素一定需要进行()次比较:
A、8
B、9
C、10
D、11
答案:B
解析:
这是一个考最优算法的下界问题。
选择问题的复杂度下界,已经有证明,可参考算法导论或屈婉玲的算法设计与分析技术这本书。
对于选择问题,找最大问题的下界是:n-1
找第二大问题的下界是:n+logn-2
因此,本题,n=8,代入下界公式:8+3-2 = 9,所以选择B、
(6)在Windows中,下列关于堆和栈的说法中错误的是?
A、堆都是动态分配的,没有静态分配的堆;栈有静态分配和动态分配2种分配方式。
B、堆的生长方向是向下的,即向着内存地址减小的方向增长;栈的生长方向是向上的,即向着内存地址增加的方向增长。
C、对堆的频繁new/delete会造成内存空间的不连续,从而造成大量的碎片;栈则不会存在这个问题
D、栈是由编译器自动治理;堆的释放工作由程序员控制,轻易产生内存泄露。
答案:B
解析:
1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap)一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事。
区别:
1. 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生内存溢出。
2. 空间大小:堆内存几乎是没有什么限制。栈一般都是有一定的空间大小。
3. 碎片问题:对于堆来讲,频繁的new/delete会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低。
4. 对于栈来讲,则不会存在这个问题。
5. 分配方式:堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。
6. 分配效率:栈的效率比较高。堆的效率比栈要低得多。
7. 增长方向:堆的增长方向是从程序低地址到高地址向上增长,而栈的增长方向刚好相反(实际情况可能不是这样的,与CPU的体系结构有关)
(7)下列数据结构不是多型数据类型的是()
A、堆
B、栈
C、字符串
D、有向图
答案:C
解析:多型数据类型是指包含的数据元素的类型并不确定。
比如栈可以是整数栈、字符栈、对象栈等等。
但是字符串,它的元素必然是字符。
(8)堆是
A、完全二叉树
B、线性表
C、二叉排序树
D、平衡二叉树
答案: A
(9)最坏情况下 insert sort, quick sort ,merge sort 的复杂度分别是多少?
A、O(n*n),O(nlogn),O(n*n)
B、O(n*n),O(n*n),O(nlogn)
C、O(n*n),O(nlogn),O(nlogn)
D、O(nlogn),O(nlogn),O(nlogn)
答案:B
解析: 1:简单选择 最好时间 O(n^2) 平均时间O(n^2) 最坏时间 O(n^2)
2:直接插入 最好时间 O(n) 平均时间O(n^2) 最坏时间 O(n^2)
3:冒泡排序 最好时间 O(n) 平均时间O(n^2) 最坏时间 O(n^2)
4:希尔排序 最好时间 O(n) 平均时间O(logn) 最坏时间 O(n^s) 1
(10)静态变量static在不同的实例中地址是否一样?他们储存在什么区域?()
A、地址一样,在堆栈区。
B、地址不一样,在堆栈区。
C、地址一样,在全局区
D、地址不一样,在全局区。
答案:C
(11)哈希函数的选取平方取中法最好。 ()
A、正确
B、错误
答案:B
解析:不能说哪种哈希函数的选取方法最好,各种选取方法有自己的适用范围。
(12)散列文件使用散列函数将记录的关键字值计算转