对序列 (15,9,7,8,20,-1,4)进行排序,只进行一次排序后,数据的排列变为 (4,9,-1,8,20,7,15),则采用的是什么排序算法?
时间: 2023-09-25 21:09:11 浏览: 219
根据引用\[3\]中的解析,可以排除选择排序、快速排序和堆排序。因为选择排序会将最小或最大的元素放在最前面,快速排序会有两个值相同且有一个数存放在临时变量,堆排序的图示也不符合。而归并排序的图示符合给定的排序结果。所以,采用的排序算法是归并排序。
#### 引用[.reference_title]
- *1* *2* *3* [PTA数据结构与算法-第七章——排序](https://blog.csdn.net/Eumenides_Suki/article/details/110175811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
写出使用增量序列 对输入数据9, 8, 7, 6, 5, 4, 3, 2, 1进行Shell排序的过程
使用增量序列对输入数据进行Shell排序的过程如下:
1. 首先选择增量序列为{5, 3, 1},即先按照步长为5进行排序,然后再按照步长为3进行排序,最后按照步长为1进行排序。
2. 使用步长为5进行排序,将数据分为5组,并且每组内部使用直接插入排序进行排序:
9 4
8 3
7 2
6 1
5
排序后的结果为:
5 4
8 1
7 2
6 3
9
3. 使用步长为3进行排序,将数据分为3组,并且每组内部使用直接插入排序进行排序:
5 1 2
8 4 3
7 9 6
排序后的结果为:
5 1 2
6 4 3
7 9 8
4. 使用步长为1进行排序,对整个序列进行直接插入排序,得到最终的排序结果:
1 2 3 4 5 6 7 8 9
写出使用增量序列 对输入数据9, 8, 7, 6, 5, 4, 3, 2, 1进行Shell排序的过程;
使用增量序列 {5, 3, 1} 对输入数据 9, 8, 7, 6, 5, 4, 3, 2, 1 进行 Shell 排序的过程如下:
1. 第一轮增量为 5,将数组分为 5 组
| 9 | 4 |
| --- | --- |
| 8 | 3 |
| 7 | 2 |
| 6 | 1 |
| 5 | |
对每组进行插入排序,得到
| 5 | 4 |
| --- | --- |
| 6 | 2 |
| 7 | 3 |
| 8 | 1 |
| 9 | |
2. 第二轮增量为 3,将数组分为 3 组
| 5 | 2 | 1 |
| --- | --- | --- |
| 6 | 3 | |
| 7 | 4 | |
| 8 | 9 | |
对每组进行插入排序,得到
| 1 | 2 | 3 |
| --- | --- | --- |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
3. 第三轮增量为 1,对整个数组进行插入排序,得到最终排序结果
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |