i:=m; j:=n+1; k:=list[m].key; REPEAT
REPEAT i:=i+1 UNTIL list[i].key>=k; REPEAT j:=j-1 UNTIL list[j].key<=k; IF i=j;
interchange(list[m],list[j]); IF n-j>=j-m THEN BEGIN
improveqsort(list, (1)____); (2)____; END
ELSE BEGIN
improveqsort(list, (3)____); (4)____;
END
END; {OF WHILE}
END; 【东南大学 2001 五(10分)】
四、应用题
1. 内部排序(名词解释)。 【燕山大学 1999 一、5 (2分)】
2. 在各种排序方法中,哪些是稳定的?哪些是不稳定的?并为每一种不稳定的排序方法举出一个不稳定的实例。【大连海事大学 1996 七、3 (4分)】 类似本题的另外叙述有:
(1) 举例说明堆排序是否为稳定排序法. 【西安电子科技大学 1996 三、4 (5分)】 (2) 选择排序算法是否稳定?为什么? 【燕山大学 2001 三、3 (5分)】 (3) 举例分析堆排序方法是否稳定。 【北京邮电大学 1993 二、3 (6分)】 (4) 堆排序是稳定排序吗?举例说明。 【东南大学 1996 一、5 (6分)】 (5) 试举例分析堆排序法是否稳定。 【东南大学 1999 一、5 (5分)】 (6) 树型选择排序通常采用顺序存储结构,①试指出n个元素的原始序列一般如何在该存储结构中存放(起始存储位置,次序),请说明理由。②讨论树形选择排序的稳定性。若稳定,须说明理由;不稳定,须举反例,并尝试找出使它稳定的方法。【北京工业大学 1999 七 (10分)】
3.在执行某种排序算法的过程中出现了排序码朝着最终排序序列相反的方向移动,从而认为该排序算法是不稳定的,这种说法对吗?为什么? 【燕山大学 2001 三、4 (5分)】 4.设有5个互不相同的元素a、b、c、d、e,能否通过7次比较就将其排好序?如果能,请列出其比较过程;如果不能,则说明原因。 【北方交通大学 1996 五(10分)】 5.对一个由n个关键字不同的记录构成的序列,能否用比2n-3少的次数选出该序列中关键字取最大值和关键字取最小值的记录?请说明如何实现?在最坏的情况下至少进行多少次比较?
【东南大学 2000 一、5 (8分)】
6.利用比较的方法进行排序,在最坏的情况下,能达到的最好时间复杂性是什么?请给出详细证明。
我下vip免费资源网 www.woxia.net 【上海交通大学 2000 六 (8分)】
7.以下概念的区别:拓扑排序与冒泡排序。 【大连海事大学 1996 三、 2(3) (2分)】 8.简述直接插入排序,简单选择排序,2-路归并排序的基本思想以及在时间复杂度和排序稳定性上的差别。
【西北工业大学 1999 二 (8分)】
9.快速排序,堆排序和希尔排序是时间性能较好的排序方法,也是稳定的排序方法。判断正误并改错。
【燕山大学 1998 二、5 (2分)】
10. 设LS是一个线性表,LS=(a1,a2,?,an),若采用顺序存储结构,则在等概率的前提下,插入一个元素需要平均移动的元素个数是多少?若元素插在ai与ai+1之间(0<=i<=n-1)的概率为(n-i)/(n*(n+1)/2),则插入一个元素需要平均移动的元素个数又是多少?【西安电子科技大学 2001软件 二、3 (5分)】
11.对于堆积排序法,快速排序法和归并排序法,若仅从节省存储空间考虑,则应该首先选取其中哪种方法?其次选取哪种方法?若仅考虑排序结果的稳定性,则应该选取其中哪种方法?若仅从平均情况下排序最快这一点考虑,则应该选取其中哪些方法?【北京航空航天大学 1998 一、10 (4分)】
12. 在堆排序、快速排序和合并排序中: 【吉林大学 2001 一、5 (6分)】
(1).若只从存储空间考虑,则应首先选取哪种排序方法,其次选取哪种排序方法,最后选
取哪种排序方法?
(2).若只从排序结果的稳定性考虑,则应选取哪种排序方法? (3).若只从平均情况下排序最快考虑,则应选取哪种排序方法?
(4).若只从最坏情况下排序最快并且要节省内存考虑,则应选取哪种排序方法?
13. 快排序、堆排序、合并排序、Shell排序中哪种排序平均比较次数最少,哪种排序占用空间最多,哪几种排序算法是不稳定的? 【首都经贸大学 1997 一、3 (4分)】 14.欲求前k个最大元素,用什么分类方法好?为什么?什么是稳定分类?分别指出下列算法是否是稳定分类算法,或易于改成稳定分类算法? A. 插入分类 B.快速分类 C.合并分类 D.堆分类 E.基数分类【东南大学 1994 一、3 (8分)】 15.考虑由三个不同关键词构成的序列:{a,b,c},试画出直接插入排序算法的二叉判定树。
【吉林大学 2001 一、3 (4分)】 16. 请阅读下列算法,回答问题
PROCEDURE sort(r,n) BEGIN
FOR i:=2 TO n DO
BEGIN
x:=r(i);r(O):=x;j:=i-1; WHILE x.key r(j+1):=r(j); j:=j-1 END; r(j+1):=x END
END;
问题一:这是什么类型的排序算法,该排序算法稳定吗? 问题二:设置r(O)的作用是什么?若将WHILE—DO 语句中判断条件改为x.key<=r(j).KEY,