一趟扫描

设待排序文件的关键码为(46,30,82,90,56,17,95,15)
1)以第一元素为分界元素进行快速排序(按关键码递增顺序),请给出一趟扫描后的结果,要求写出过程,并给出所有扫描结果。
2)用直接插入法排序,请给出一趟扫描后的结果,要求写出过程,并给出所有扫描结果
3)用冒泡排序法排序,请给出一趟扫描后的结果,要求写出过程,并给出所有扫描结果
4)用简单选择法排序,请给出一趟扫描后的结果,要求写出过程,并给出所有扫描结果
5)用二路归并法排序,请给出一趟扫描后的结果,要求写出过程,并给出所有扫描结果
6)用堆排序法排序,请给出初始建堆的结果。
(1)
快速排序:46 30 82 90 56 17 95 15
第一趟:
第1步:取参考中间值:46
空30 82 90 56 17 95 15←
第2步:
15 →30 82 90 56 17 95空
第3步:
15 30 →82 90 56 17 95空
第4步:
15 30空90 56 17 95← 82
第5步:
15 30空90 56 17← 95 82
第6步:
15 30 17 →90 56 空95 82
第7步:
15 30 17 空 56← 90 95 82
第8步:回填中间值:46
15 30 17 46← 56 90 95 82
所有扫描结果
第一趟 15 30 17 46# 56 90 95 82
第二趟 15# 30 17 46# 56 90 95 82
第三趟 15# 17 30# 46# 56 90 95 82
第四趟 15# 17 30# 46# 56# 90 95 82
第五趟 15# 17 30# 46# 56# 82 90# 95
(2)
直接插入排序:46 30 82 90 56 17 95 15
第一趟
第一步
在有序子序{46}中插入30变成有序,有序子序为{30,46}
所有扫描结果
30# 46 82 90 56 17 95 15
30 46 82# 90 56 17 95 15
30 46 82 90# 56 17 95 15
30 46 56# 82 90 17 95 15
17# 30 46 56 82 90 95 15
17 30 46 56 82 90 95# 15
15# 17 30 46 56 82 90 95
(3)
冒泡排序:46 30 82 90 56 17 95 15
第一趟
第1步:
30# 46# 82 90 56 17 95 15
第2步:
30 46# 82# 90 56 17 95 15
第3步:
30 46 82# 90# 56 17 95 15
第4步:
30 46 82 56# 90# 17 95 15
第5步:
30 46 82 56 17# 90# 95 15
第6步:
30 46 82 56 17 90# 95# 15
第7步:
30 46 82 56 17 90 15# 95#
所有扫描结果
30 46 82 56 17 90 15 95#
30 46 56 17 82 15 90# 95
30 46 17 56 15 82# 90 95
30 17 46 15 56# 82 90 95
17 30 15 46# 56 82 90 95
17 15 30# 46 56 82 90 95
15 17# 30 46 56 82 90 95
(4)
简单选择排序:46 30 82 90 56 17 95 15
第一趟
第一步
最小者15和46交换
15# 30 82 90 56 17 95 46#
所有扫描结果
15# 30 82 90 56 17 95 46#
15 17# 82 90 56 30# 95 46
15 17 30# 90 56 82# 95 46
15 17 30 46# 56 82 95 90#
15 17 30 46 56# 82 95 90
15 17 30 46 56 82# 95 90
15 17 30 46 56 82 90# 95#
(5)
归并排序:46 30 82 90 56 17 95 15
第一趟
第一步
30 46 82 90 56 17 95 15
第二步
30 46 82 90 56 17 95 15
第三步
30 46 82 90 17 56 95 15
第四步
30 46 82 90 17 56 15 95
所有扫描结果
30 46 82 90 17 56 15 95
30 46 82 90 15 17 56 95
15 17 30 46 56 82 90 95
(6)
堆排序:46 30 82 90 56 17 95 15
升序用大根堆
初始建堆
95 90 82 30 56 17 46 15

你可能感兴趣的:(一趟扫描)