考虑用快速排序、堆排序和归并排序3种排序方法对数据序列进行排序,针对下列不同情况,宜分别选择哪种排序方法? (1)使用尽量少的存储空间; (2)要求排序结果是稳定的; (3)快速找出数据序列中关键字值较大的若干项。
考虑用快速排序、堆排序和归并排序3种排序方法对数据序列进行排序,针对下列不同情况,宜分别选择哪种排序方法? (1)使用尽量少的存储空间; (2)要求排序结果是稳定的; (3)快速找出数据序列中关键字值较大的若干项。
【正确答案】:(1)堆排序(2)归并排序(3)堆排序
【题目解析】:根据教材190页内部排序方法的比较分析得出这三种排序方法中,堆排序是要求空间最小的O(1),归并排序是最稳定的。堆排序是一种选择排序。建立的初始堆为初始的无序区。排序开始,首先输出堆顶元素(因为它是最值),将堆顶元素和最后一个元素交换,这样,第n个位置(即最后一个位置)作为有序区,前n-1个位置仍是无序区,对无序区进行调整,得到堆之后,再交换堆顶和最后一个元素。如果建的最大化堆,就能快速找出关键安较大的若干项。
Top