对n个记录进行非递减排序,在第一趟排序之后,一定能把关键码序列中的最大或最小元素放在其最终排序位置上的排序算法是【 】。
A、冒泡排序
B、快速排序
C、直接插入排序
D、归并排序
对n个记录进行非递减排序,在第一趟排序之后,一定能把关键码序列中的最大或最小元素放在其最终排序位置上的排序算法是【 】。
A、冒泡排序
B、快速排序
C、直接插入排序
D、归并排序
A
【解析】
冒泡排序在一趟排序过程中将最大元素(或最小元素)交换至最终排序位置。快速排序是经过划分后将枢轴元素放在最终排序位置。直接插入排序是在有序序列中插入一个元素保持序列的有序性并使得有序序列不断加长,每次插入的元素不能保证是最大元素(或最小元素)。归并排序是将有序序列进行合并,第一趟归并是将长度为1的序列合并为长度为2的序列,在m>2的情况下,不能保证第一趟就将最大元素(或最小元素)放在最终位置。
设有二叉排序树如下图所示,根据关键码序列【 】可构造出该二叉排序树。
某图G的邻接矩阵如下所示。以下关于该图的叙述中,错误的是【 】
某二又树的先序遍历序列为 ABCDFGE,中序遍历序列为 BAFDGCE。以下关于该二又树的叙述中,正确的是【 】。
队列采用如下图所示的循环单链表表示,左图表示队列为空,右图为e1、e2、e3依次入队列后的状态,其中,rear指针指向队尾元素所在结点,size为队列长度。以下叙述中,正确的是【 】。
设有初始为空的栈S,对于入栈序列a、b、c、d,经由一个合法的进栈和出栈操作序列后(每个元素进栈、出栈各1次),以c作为第一个出栈的元素时,不能得到的序列为【 】。
对于长度为n的线性表(即n个元素构成的序列),若采用顺序存储结构(数组存储),则在等概率下,删除一个元素平均需要移动的元素数为【 】。
如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序序列,用【 】方法最快
若有n个元素已构成一个小根堆,那么如果增加一个元素Kn+1,请用文字简要说明如何在log2n的时间内将其重新调整为一个堆。
如果待排序序列中两个数据元素具有相同的值,在排序前后它们的位置发生颠倒,则称该排序算法是不稳定的,【 】就是不稳定的排序算法。
若要尽可能快地完成对实数数组的排序,且要求排序是稳定的,应该选【 】。
若需在O(log2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是【 】。
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为__________。
初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为【 】。