问答题(2000年复旦大学)

堆排序是不是一种稳定的排序方法?为什么?

答案解析

堆排序不是一种稳定的排序方法。

在堆调整的过程中,关键字进行比较和交换时所走的路线是沿着根结点到叶子结点,对于相同的关键字可能存在后面的关键字先被调到前面的情况,因而堆排序是不稳定的。

讨论

下述排序算法中,所需辅助存储量最多的是__________,所需辅助存储量最少的是__________,平均速度最快的是__________。A. 快速排序 B. 归并排序 C. 堆排序

下列排序算法中,哪些时间复杂度不会超过nlogn【 】。

初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为【 】。

对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为__________。

下列排序算法中,不稳定的是【 】。Ⅰ. 希尔排序Ⅱ. 归并排序Ⅲ. 快速排序Ⅳ. 堆排序Ⅴ. 基数排序

使用快速排序算法对数据进行升序排序, 若经过一次划分后得到的数据序列是 68, 11, 70, 23, 80, 77, 48, 81, 93, 88,则该次划分的轴枢【】。

若需在O(log2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是【 】。

对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码ki时,其前面的 i-1 个关键码已排好序,因此令k与 ki-1、ki-2、…,依次比较,最多到 k1为止,找到插入位置并移动相关元素后将ki插入有序子序列的适当位置,完成本趟(即第 i-1 趟)排序。以下关于直接插入排序的叙述中,正确的是【 】 。

根据枢轴元素(或基准元素)划分序列而进行排序的是【 】。

序列【 】可能是第一趟冒泡排序后的结果。