-
下列查找算法中,属于无序查找算法的是:
A. 顺序查找
B. 插值查找
C. 二分查找
D. 分块查找
答案:A
解析:顺序查找是一种基本的查找技术,它按顺序逐个检查列表中的元素,直到找到匹配项或者遍历完整个列表。因此,顺序查找适用于无序列表。其他选项 B. 查找插找、C. 二分查找和D. 分块查找通常用于有序列表或特定数据结构中进行高效的查找。 -
在接口中下面的属性和方法的声明哪些是错误的?
A. interface I{
int num;
}
B. interface I{
abstract void m();
}
C. interface I{
I();
}
D. interface I{
protected void m();
}
答案:AC
解析:
A. 错误,因为在接口中只能声明常量,而且它们必须使用public static final
修饰符。
B. 正确,因为它声明了一个抽象方法。
C. 错误,因为接口中不能有构造方法。
D. 错误,因为接口中的方法默认是public的,不能使用其他访问修饰符。
- [0, 2, 1, 4, 3, 9, 5, 8, 6, 7]是以数组形式存储的最小堆,删除堆顶元素0后的结果是()
A. [2, 1, 4, 3, 9, 5, 8, 6, 7]
B. [1, 2, 5, 4, 3, 9, 8, 6, 7]
C. [2, 3, 1, 4, 7, 9, 5, 8, 6]
D. [1, 2, 5, 4, 3, 9, 7, 8, 6]
答案:D
解析:删除堆顶,然后总是从堆尾将某个数先放置到堆顶,然后依次下调到符合完全二叉树的要求,即每个子树的两个子节点都比父节点大(最小堆)。过程如下图所示:
- 对n个记录的文件进行归并排序,所需要的辅助空间为()
A. O(log2n)
B. O(n)
C. O(n^2)
D. O(1)
答案:B
解析:
所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1);快速排序为O(logn),为栈所需的辅助空间;归并排序所需辅助空间最多,其空间复杂度为O(n), 因为归并排序需要一个与原数组相同长度的数组做辅助来排序。 - 线性表如果要频繁地执行插入和删除操作,该线性表采取的存储结构为()
A. 散列
B. 索引
C. 顺序
D. 链式
答案:D
解析:链式存储的线性表,插入和删除操作只需要改变指针,时间复杂度为O(1),而采用顺序存储结构的线性表插入和删除涉及到数据的大量移动,时间复杂度为O(n)。 - 若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
A. 单链表
B. 仅有尾指针的单循环链表
C. 仅有头指针的单循环链表
D. 双链表
答案:B - 下列概念中,属于数据结构的是()
A. 队列
B. 映射表
C. HashMap
D. 数组
答案:ABCD
解析:队列是一种线性数据结构;映射表是一种数据结构,用于存放键值对;有三种类型的映射表:散列映射表HashMap、链式散列映射表LinkedHashMap、树型映射表TreeMap;数组是一种非常基础且重要的数据结构,很多复杂的数据结构都是基于数组实现的。 - 在数据结构中,从逻辑上可以把数据结构分成线性结构和非线性结构。
解析:逻辑结构即数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据的存储无关。因此根据数据元素与数据元素之间的关系,逻辑结构被分为两大类:线性结构和非线性结构。而集合结构与非集合结构、树形结构和图状结构指的都是特定的数据结构类型。 - 对线性表进行折半搜索时,要求线性表必须()
A. 以顺序方式存储
B. 以链接方式存储
C. 以顺序方式存储,且结点按关键码有序排序
D. 以链接方式存储,且结点按关键码有序排序
答案:C
解析:折半查找的前提条件是线性表以顺序方式存储,且元素按关键字有序排序,因此,本题参考答案是C。 - 算法一般可以由哪几种控制结构组成:
A. 递归
B. 选择
C. 循环
D. 顺序
答案:BCD
解析:算法的三个基本控制结构指的是顺序结构、选择结构和循环结构。这三个基本控制结构是构成算法的基础,能够使程序按照预定的逻辑顺序执行,实现特定的功能。