第十章排序答案
数据结构-第十章-内部排序

0
1
2
3
4
5
6
7
8
i=5
MAXINT 49 2 3
MAXINT 49 6 3 MAXINT 49 6 3 MAXINT 49 6 8
38 1
38 1 38 1 38 1
65 97 5 0
65 5 65 5 65 5 97 0 97 0 97 0
76 4
76 4 76 4 76 4
13
27
49
i=6
最坏情况下,待排记录按关键字非递增有序 排列(逆序)时,第 i 趟时第 i+1 个对象 必须与前面 i 个对象都做排序码比较, 并且 每做1次比较就要做1次数据移动。总比较 次 数 为 (n+2)(n-1)/2 次 , 总 移 动 次 数 为 (n+4)(n-1)/2。 在平均情况下的排序码比较次数和对象移 动次数约为 n2/4。因此,直接插入排序的 时间复杂度为 O(n2)。 直接插入排序是一种稳定的排序方法。
折半插入排序 (Binary Insertsort)
基本思想 既然每个要插入记录之前的纪录 已经按关键字有序排列,在查找插入位 臵时就没有必要逐个关键字比较,可以 使用折半查找来实现。由此进行的插入 排序称之为折半插入排序。
折半插入排序的算法
void BInsertSort (SqList &L){ for (i=2;i<=L.length;++i){ L.r[0]=L.r[i]; low=1;high=i-1; //查找范围由1到i-1 while(low<=high){ m=(low+high)/2; if LT(L.r[0].key,L.r[m].key) high=m-1; else low=m+1; }//while 折半查找 for (j=i-1;j>=high+1;--j) L.r[j+1]=L.r[j]; //折半查找结束后high+1位臵即为插入位臵 L.r[high+1]=L.r[0]; }//for }//BInsertSort
第十章内部排序

10.2 插入排序
1、直接插入排序:续 •实现算法
Status InsertSort ( SqList &L ) { for ( i = 2; i <= L.length ; ++i ) if ( LT( L.r[i].key, L.r[i-1].key ) ) { L.r[0].key = L.r[i].key; //复制为哨兵 for ( j=i-1; LT( L.r[0].key, L.r[j].key ) ; - -j ) L.r[j+1] = L.r[j]; //后移记录 L.r[j+1] = L.r[0]; } } //InsertSort
1 物料管理
第十章 内部排序
学习内容
10.1 概述 10.2 插入排序 10.3 快速排序 10.4 选择排序 10.5 归并排序
SORT
2 物料管理
第十章 内部排序
10.1 概述
•定义
设有记录序列:{ R1、R2 ……….. Rn } 其相应的关键字序列为: { K1、K2 ……….. Kn }; 若存在一种确定的关系: Kx <= Ky <= … <= Kz,则将记录序列 { R1、R2 ……….. Rn } 排成按 该关键字有序的序列:{ Rx、Ry ……….. Rz } 的操作,称之为排序。
•性能分析 减少了查找比较次数,但并未降低时间复杂度,仍为O(n2)。 7
SORT
8 物料管理
第十章 内部排序
10.2 插入排序
3、 希尔(shell) 排序 •基本思想 先将整个待排记录序列分割成为若干个子序列分别进行直接插入排序,待整个序列 中的记录基本有序时,再对全体记录进行一次直接插入排序。
第十章_排序方法(数据结构ppt-严蔚敏)

第二个问题解决方法——筛选
方法:输出堆顶元素之后,以堆中最后一个元素替代之;然 后将根结点值与左、右子树的根结点值进行比较,并与其中 小者进行交换;重复上述操作,直至叶子结点,将得到新的 堆,称这个从堆顶至叶子的调整过程为“筛选”
例 38 50 97 76
13 27 65 49 13 38
97 27 38 50 76
2 (n 4)(n 1) 记录移动次数: (i 1) 2 i 2
i 2 n
若待排序记录是随机的,取平均值 n2 关键字比较次数: T(n)=O(n² ) 4 记录移动次数:
空间复杂度:S(n)=O(1)
n2 4
折半插入排序
排序过程:用折半查找方法确定插入位置的排序叫~
初始时令i=s,j=t 首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp 交换 再从i所指位置起向后搜索,找到第一个关键字大于x的记录, 和rp交换 重复上述两步,直至i==j为止 再分别对两个子序列进行快速排序,直到每个子序列只含有 一个记录为止
x 例 初始关键字: 27 49 i 完成一趟排序: ( 27 38 13 49 65 i 13) 49 97 76 j 97 49 13 j 97 65 49 27 50 j 50)
13 38
76 65 27 49
堆排序:将无序序列建成一个堆,得到关键字最小 (或最大)的记录;输出堆顶的最小(大)值后,使 剩余的n-1个元素重又建成一个堆,则可得到n个元素 的次小值;重复执行,得到一个有序序列,这个过程 叫~ 堆排序需解决的两个问题:
如何由一个无序序列建成一个堆? 如何在输出堆顶元素之后,调整剩余元素,使之成为一个新 的堆?
按排序所需工作量
第十章排序答案

第10章排序一、选择题1.某内排序方法的稳定性是指( D )。
【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( D )排序法是不稳定性排序法。
【北京航空航天大学 1999 一、10 (2分)】 A. 插入 B. 冒泡 C. 二路归并 D. 堆积3.下列排序算法中,其中(D )是稳定的。
【福州大学 1998 一、3 (2分)】A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序4.稳定的排序方法是( B )【北方交通大学 2000 二、3(2分)】A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.简单选择排序和四路归并排序 D.树形选择排序和shell排序5.下列排序方法中,哪一个是稳定的排序方法?( B )【北方交通大学 2001 一、8(2分)】A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6. 快速排序方法在( D )情况下最不利于发挥其长处。
【燕山大学 2001 一、3 (2分)】A. 要排序的数据量太大B. 要排序的数据中含有多个相同值C. 要排序的数据个数为奇数D. 要排序的数据已基本有序7. 以下序列不是堆的是( D )。
【西安电子科技大学 2001应用一、5 (2分)】A. (100,85,98,77,80,60,82,40,20,10,66)B. (100,98,85,82,80,77,66,60,40,20,10)C. (10,20,40,60,66,77,80,82,85,98,100)D. (100,85,40,77,80,60,66,98,82,10,20)8.下列四个序列中,哪一个是堆( C )。
【北京工商大学 2001 一、8 (3分)】A. 75,65,30,15,25,45,20,10B. 75,65,45,10,30,25,20,15C. 75,45,65,30,15,25,20,10D. 75,45,65,10,25,30,20,159.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A )排序法。
第十章 内部排序

(38) (65) (97) (76) (13) (27) (49)
直接插入排序算法
Void InsertSort(SqList &L) { //对顺序表L作直接插入排序 for (i=2; i<=L.length; ++i) if LT(L.r[i].key, L.r[i-1].key) { L.r[0]=L.r[i]; //复制为哨兵 for (j=i-1; LT(L.r[0].key, L.r[j].key); --j) L.r[j+1]=L.r[j]; //记录后移 L.r[j+1]=L.r[0]; //插入到正确位置 } }//InsertSort
改写上述算法:将枢轴暂存在r[0]的位置上,直至一趟排 序结束后再将枢轴记录移至正确位置上, 算法10.6(b): Int Partition(SqList &L, int low, int high) { L.r[0]=L.r[low]; Pivotkey=L.r[low].key; while (low<high) { while(low<high && L.r[high].key>=pivotkey) --high;
10。3交换排序
起泡排序思想: 依次对未排序部分相邻的两个元素进行比较,若逆序则 交换位置,每一趟可以使一个最大(最小)元素从这个序列 中冒出来,经过n-1趟,就可以排好序 例:
起泡排序示例
初始关键字 第一趟排序后 第二趟排序后 第三趟排序后 第四趟排序后 第五趟排序后 12 12 12 12 12 4 23 23 18 14 4 18 18 14 4 14 14 14 4 18 4 4 23 90 90
快速排序
第10章 排序

第十章排序一、单项选择题1.有一组序列48,36,68,99,75,24,58,52进行快速排序,要求结果按从小到大排序,则进行一次划分之后结果为_____。
A. (24 28 36) 48 (52 68 75 99)B. (28 36 24) 48 (75 99 68 52)C. (36 68 99) 48 (75 24 28 52)D. (28 36 24) 48 (99 75 68 52)2.已知两个有序表,若要将它们组合成一个新的有序表,最好的方法是_____。
A. 希尔排序B. 二分插入排序C. 合并排序D. 冒泡排序3.排序译意风稳定的和不稳定的之分,下列四个说法中,只有______是正确的。
A. 快速排序是稳定的排序方法B. 堆排序是不稳定的排序方法C. 希尔排序是稳定的排序方法D. 冒泡排序是不稳定的排序方法4. 下列排序方法中,____方法是不稳定的。
A. 冒泡排序B. 希尔排序C. 冒泡排序D. 直接插入排序5. 下列排序方法中,在待排序的数据已经有序时,花费时间反而最多的是______。
A.快速排序B. 希尔排序C. 冒泡排序D. 堆排序6. 快速排序方法在最好情况下的时间复杂度为______。
A. O(n)B. O(n2)C. O(nlog2n)D.(log2n)7. 下列排序方法中,时间复杂度不受数据初始状态影响,恒为O(n2)的是_______。
A. 堆排序B.冒泡排序C. 直接选择排序D.快速排序8. 依次将待排序序列中的元素和有序子序列合并为一个新的有序子序列的排序方法是____。
A. 快速排序B.插入排序C. 冒泡排序D. 堆排序9. 在表R中排序前已按键值递增顺序排序,则_____方法的比较次数最少。
A. 直接插入排序B. 快速排序C. 归并排序D. 选择排序10. 已知表A中每个元素距其最终位置不远,采用______方法最节省时间。
A. 堆排序B. 冒泡排序C. 快速排序D. 直接选择排序11. 在下列排序方法中,字比较的次数与记录的初始排列次序无关的是______。
有机化学答案

第十章 羧酸及其衍生物习题答案1. 命名下列化合物(1)三氟乙酸 (2)3-丁烯酸 (3)4-戊酮酸 (4)1-羟基环己基甲酸 (5)2,4-二氯苯氧乙酸 (6)1,3-环己基二甲酸 (7)2,2-二甲基丙二酸 (8)丁二酸单酰氯 (9)2-甲基顺丁烯二酸酐 (10)N-溴丁二酰亚胺 (11)2-环戊酮基甲酸甲酯 (12) -丁内酯 (13)N-苯基-4-甲氧基苯甲酰胺 (14)N-苯基氨基甲酸甲酯 (15)2-乙酰氧基苯甲酸(乙酰水杨酸) (16)2-乙基-3-丁酮酸乙酯 2. 写出下列化合物的结构式CH 3CH 2CHCCHOOHCH 3CH 3COOH COOH CH CHCOOHHOOCCH 2CCH 2COOH COOH CH 3CHCOOH CH 3ONHCOCH 3H C ON(CH 3)2CH 2CCOOCH 33C C O OO NHC O (1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)3. 比较下列化合物的酸性大小(1)甲酸 > 碳酸 > 苯酚 > 水 > 环己醇(2)氯乙酸 > 羟基乙酸 > 乙酸 > 丙酸 (3)草酸 > 丙二酸 > 苯甲酸 > 乙酸(4)邻硝基苯甲酸 > 对硝基苯甲酸 > 间硝基苯甲酸 > 苯甲酸(5)对溴苯甲酸 > 对甲基苯甲酸 > 对甲氧基苯甲酸 > 对氨基苯甲酸 4.按要求排序(1)按水解活性大小排序:丙酰氯 > 丙酸酐 > 丙酸乙酯 > 丙酰胺 (2)与乙醇酯化的速度:乙酸 > 丙酸 > 2-甲基丙酸 > 苯甲酸 (3)与丙酸酯化的速度:乙醇 > 丙醇 > 异丙醇 > 苯甲醇(4)碱性水解的速度:甲酸甲酯 > 乙酸甲酯 > 乙酸乙酯 > 乙酸异丙酯(5)碱性水解的速度:对硝基苯甲酸乙酯 > 对氯苯甲酸乙酸 > 对甲基苯甲酸乙酯 5.写出下列化合物加热后生成的主要产物。
(2)(3)(4)(1)CH 3CH O C OOCHCCH 3OCH 3CH CHCOOH C O OCH 3COCH 3O(5)(6)CH 3CHO C C O O OHCOOH (7)(8)(9)CH 3COOH6.写出丙酸与下列试剂反应的主要产物(2)(3)(4)(1)(5)(6)CH 3CH 2COONa CH 3CH 2COCl CH 3CH 2COOCH 2CH 3CH 3CH 2CH 2OHCH 3CHCOOHCH 3CH 2CONH 27.写出乙酰氯与下列试剂反应的主要产物。
FORTRAN95第十章 排序、查找算法

给定值与处于顺序表“中间位置”上的元素的关键字进行比较键字则在表的后半部分继续进行二 分查找。否则在表的前半部分继续进行二分查找, 如此进行下去直 至找到满足条件的元素,或当前查找区为空。
10.1.4 直接插入排序 直接插入排序的方法是将待排记录分成两部分,初始第
一部分只含1个记录,在排序进程中把第二部分的全部记 录逐步插入到第一部分,并使该部分每次插入记录后是有 序的。直接插入排序算法步骤:
(1)将n个待排的记录数据存一维数组A中,默认A(1)为第 一部分的记录,2=>I;
(2)若I<=n, 则第二部分的一个记录A(I)与第一部分记 录进行比较, 找出在第一部分插入这个记录的位置,然后 将该位置上原来的记录及其后面所有的记录顺序后移一 个位置,在空出的位置上插入这个记录;若I>n (表示把 第二部分的记录全部插入到第一部分) ,则结束排序;
10.1.2 冒泡排序 冒泡排序是通过相邻两个排序记录的关键字的比
较,按一定次序互换逐步实现有序排序。 冒泡排序的实现过程是:第一次冒泡排序,首先将第
一个记录的关键字和第二个记录的关键字进行比较, 若不满足顺序的要求,则将两个记录进行交换,然
后比较第二个记录和第三个记录的关键字并做同样
处理,依次类推,直至对第n-1个记录和第n个记录 进行比较并处理完, 使得关键字值最大的记录被交换 到了最后一个记录的位置上。第二次冒泡排序只需
integer::low,high,key,ix,mid integer,dimension(low:high):: a do while(low<=high)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章排序一、选择题1.某内排序方法的稳定性是指( D )。
【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( D )排序法是不稳定性排序法。
【北京航空航天大学 1999 一、10 (2分)】 A. 插入 B. 冒泡 C. 二路归并 D. 堆积3.下列排序算法中,其中(D )是稳定的。
【福州大学 1998 一、3 (2分)】A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序4.稳定的排序方法是( B )【北方交通大学 2000 二、3(2分)】A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.简单选择排序和四路归并排序 D.树形选择排序和shell排序5.下列排序方法中,哪一个是稳定的排序方法?( B )【北方交通大学 2001 一、8(2分)】A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6. 快速排序方法在( D )情况下最不利于发挥其长处。
【燕山大学 2001 一、3 (2分)】A. 要排序的数据量太大B. 要排序的数据中含有多个相同值C. 要排序的数据个数为奇数D. 要排序的数据已基本有序7. 以下序列不是堆的是( D )。
【西安电子科技大学 2001应用一、5 (2分)】A. (100,85,98,77,80,60,82,40,20,10,66)B. (100,98,85,82,80,77,66,60,40,20,10)C. (10,20,40,60,66,77,80,82,85,98,100)D. (100,85,40,77,80,60,66,98,82,10,20)8.下列四个序列中,哪一个是堆( C )。
【北京工商大学 2001 一、8 (3分)】A. 75,65,30,15,25,45,20,10B. 75,65,45,10,30,25,20,15C. 75,45,65,30,15,25,20,10D. 75,45,65,10,25,30,20,159.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A )排序法。
【北京航空航天大学 1999 一、8(2分)】A. 插入B. 选择C. 希尔D. 二路归并10.比较次数与排序的初始状态无关的排序方法是( D )。
【北方交通大学 2000 二、2(2分)】A.直接插入排序 B.起泡排序 C.快速排序 D.简单选择排序11.对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为( B )。
A. (2,5,12,16)26(60,32,72)B. (5,16,2,12)28(60,32,72)C. (2,16,12,5)28(60,32,72)D. (5,16,2,12)28(32,60,72) 【青岛大学 2000 三、4 (2分)】12.下列排序算法中( B )不能保证每趟排序至少能将一个元素放到其最终的位置上。
A.快速排序B. shell排序C. 堆排序D.冒泡排序【合肥工业大学 2001 一、3(2分)】13.有一组数据(15,9,7,8,20,-1,7,4)用快速排序的划分方法进行一趟划分后数据的排序为 ( A )(按递增序)。
【南京理工大学 1996 一、4 (2分)】A.下面的B,C,D都不对。
B.9,7,8,4,-1,7,15,20C.20,15,8,9,7,-1,4,7 D. 9,4,7,8,7,-1,15,2014.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( C )。
【燕山大学 2001 一、4(2分)】A.(38,40,46,56,79,84) B. (40,38,46,79,56,84)C.(40,38,46,56,79,84) D. (40,38,46,84,56,79)15.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是( C )排序。
A.冒泡 B. 希尔 C. 快速 D. 堆【南京理工大学 2001 一、12 (1.5分)】16. 对初始状态为递增序列的表按递增顺序排序,最省时间的是( C )算法,最费时间的是( B )算法。
A. 堆排序B. 快速排序C. 插入排序D. 归并排序【南开大学 2000 一、5】17. 就平均性能而言,目前最好的内排序方法是( D )排序法。
【西安电子科技大学 1998 一、9 (2分)】A. 冒泡B. 希尔插入C. 交换D. 快速18.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( D )方法最快。
A.起泡排序 B.快速排列 C.Shell排序 D.堆排序 E.简单选择排序【清华大学 1998 一、2 (2分)】19.在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( A )A.直接插入排序 B.冒泡排序 C.简单选择排序【山东工业大学 1995 二、1 (2分)】20.下列排序算法中,( D )算法可能会出现下面情况:在最后一趟开始之前,所有元素都不在其最终的位置上。
【南开大学 2000 一、4】【西北大学 2001 二、1】A. 堆排序B. 冒泡排序C. 快速排序D. 插入排序三、填空题1.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的_比较_和记录的_移动__。
【北京邮电大学 2001 二、7 (4分)】2.分别采用堆排序,快速排序,冒泡排序和归并排序,对初态为有序的表,则最省时间的是_冒泡_算法,最费时间的是_快速_算法。
【福州大学 1998 二、10 (2分)】3. 不受待排序初始序列的影响,时间复杂度为O(N2)的排序算法是简单选择_,在排序算法的最后一趟开始之前,所有元素都可能不在其最终位置上的排序算法是(2)直接插入排序(最小的元素在最后时)_。
【中国人民大学 2001 一、3 (2分)】4.直接插入排序用监视哨的作用是免去查找过程中每一步都要检测整个表是否查找完毕,提高了查找效率。
【南京理工大学 2001 二、8 (2分)】5 设用希尔排序对数组{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称增量序列)依次是4,2,1则排序需__3___趟,写出第一趟结束后,数组中数据的排列次序(10,7,-9,0,47,23,1,8,98,36)。
【南京理工大学 1997 三、5 (2分)】6.堆是一种有用的数据结构。
试判断下面的关键码序列中哪一个是堆___4_____。
①16,72,31,23,94,53 ②94,53,31,72,16,23 ③16,53,23,94,31,72④16,31,23,94,53,72 ⑤94,31,53,23,16,727.堆是一种有用的数据结构. 堆排序是一种_(1)选择_排序,堆实质上是一棵_(2)完全二叉树_结点的层次序列。
【山东工业大学 1996 三、1 (5分)】8.关键码序列( Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell排序法,则一趟扫描的结果是_(Q,A,C,S,Q,D,F,X,R,H,M,Y)_;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是_(F,H,C,D,Q,A,M,Q,R,S,Y,X)_。
【北京大学 1997 一、4 (4分)】四、应用题1. 在各种排序方法中,哪些是稳定的?哪些是不稳定的?并为每一种不稳定的排序方法举出一个不稳定的实例。
【大连海事大学 1996 七、3 (4分)】2. 对下面数据表,写出采用SHELL排序算法排序的每一趟的结果,并标出数据移动情况。
(125,11,22,34,15,44,76,66,100,8,14,20,2,5,1)。
【合肥工业大学 1999 四、4 (5分)】125,11,设D=7D=31,11,2,5,15,8,14,34,20,22,66,100,44,76,125D=1 1,2,5,8,11,14,15,20,22,34,44,66,76,100,1253.有一随机数组(25,84,21,46,13,27,68,35,20),现采用某种方法对它们进行排序,其每趟排序结果如下, 则该排序方法是什么? 【武汉交通科技大学 1996 二、5 (6分)】初始:25,84,21,46,13,27,68,35,20 第一趟:20,13,21,25,46,27,68,35,84第二趟:13,20,21,25,35,27,46,68,84 第三趟:13,20,21,25,27,35,46,68,84该排序方法为快速排序。
4.判断下列序列是否是堆(可以是小堆,也可以是大堆,若不是堆,请将它们调整为堆)。
(1)100,85,98,77,80,60,82,40,20,10,66(2)100,98,85,82,80,77,66,60,40,20,10(3)100,85,40,77,80,60,66,98,82,10,20(4)10,20,40,60,66,77,80, 82,85,98,100【山东大学 1998 四 (5分)】【山东工业大学 2000 四(5分)】答案: (1)是大堆; (2)是大堆;(4)是小堆;(3)不是堆,调成大堆 100,98,66,85,80,60,40,77,82,10,205.给出一组关键字T=(12,2,16,30,8,28,4,10,20,6,18),写出用下列算法从小到大排序时第一趟结束时的序列;(1) 希尔排序(第一趟排序的增量为5) (2) 快速排序(选第一个记录为枢轴(分隔))【上海交通大学 1999 八(9分)】(1)一趟希尔排序: 12,2,10,20,6,18,4,16,30,8,28 ( D=5)(2)一趟快速排序:6,2,10,4,8,12,28,30,20,16,186. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按下列各种排序方法进行排序时的变化过程:【南开大学 1998 八 (12分)】(1) 归并排序每归并一次书写一个次序。
(2) 快速排序每划分一次书写一个次序。
(3) 堆排序先建成一个堆,然后每从堆顶取下一个元素后,将堆调整一次。
(1)2路归并第一趟:18,29,25,47,12,58,10,51;第二趟:18,25,29,47,10,12,51,58;第三趟:10,12,18,25,29,47,51,58(2)快速排序第一趟:10,18,25,12,29,58,51,47;第二趟:10,18,25,12,29,47,51,88;第三趟:10,12,18,25,29,47,51,88(3)堆排序建大堆:58,47,51,29,18,12,25,10;①51,47,25,29,18,12,10,58;②47,29,25,10,18,12,51,58;③29,18,25,10,12,47,51,58;④25,18,12,10,29,47,51,58;⑤18,10,12,25,29,47,51,58;⑥12,10,18,25,29,47,51,58;⑦10,12,18,25,29,47,51,58。