目录
一、选择题
(1)下列数据结构具有记忆功能的是(C)
A.队列
B.循环队列
C.栈
D.顺序表
记忆功能是指什么,例如浏览器的回退功能,文本编辑的撤销操作都属于记忆性功能,栈具有先进后出的功能,当对栈进行出栈操作,得到的元素是最后存入的元素
(2)对递归程序进行优化的一般手段为(A)
A.尾递归优化
B.循环优化
C.堆栈优化
D.停止值优化
例如,在进行快速排序时,递归的终止条件是 l>=r;return; l是区间的最左侧,r是区间的最右侧
尾递归优化是指,在递归终止条件处进行优化,当区间中元素个数较少时,采用插入排序来优化
(3)将一棵二叉树的根节点放入队列,然后递归的执行如下操作,将出队节点的所有子节点加入队。以上操作可以实现哪种遍历(D)
A.前序遍历
B.中序遍历
C.后序遍历
D.层序遍历
在上述4中遍历中,用到队列的遍历只有层序遍历,另外三种遍历借助的是栈
(4)有1000个无序的数,希望使用最快的方式找出前50个最大的,最佳的选择是(C)
A.冒泡排序
B.基数排序
C.堆排序
D.快速排序
topK问题,使用堆排序
(5)以下数据结构,说法错误的是(C)
A.红黑树插入操作的平均时间复杂度是O(logN),最坏的时间复杂度是O(logN)
B.B+树插入操作的平均时间复杂度是O(logN),最坏的时间复杂度是O(logN)
C.Hash表插入操作的平均时间复杂度是O(logN),最坏的时间复杂度是O(N)
D.排序链表插入操作的平均时间复杂度是O(N),最坏的时间复杂度是O(N)
Hash表插入的时间复杂度是O(1)
(6)下列排序中,每经过一次元素的交换会产生新的逆序的是(A)
A.快速排序
B.冒泡排序
C.插入排序
D.选择排序
快速排序一次数据交换的过程