给定一组记录的关键码为(26,,5,37,1,61,11,59,15,48,19),分别使用快速排序和归并排序方法对其进行排序,给出排序过程中每一趟排序后的结果。(用C语言编写)
时间: 2023-03-14 19:37:34 浏览: 214
快速排序:第1趟:1,11,15,19,26,37,48,5,59,61;第2趟:1,11,15,19,5,26,37,48,59,61;第3趟:1,5,11,15,19,26,37,48,59,61。归并排序:第1趟:26,5,37,1,61,11,59,15,48,19;第2趟:1,26,5,37,11,61,15,59,48,19;第3趟:1,5,11,15,19,26,37,48,59,61。
相关问题
给定一组记录的关键码为(26,,5,37,1,61,11,59,15,48,19),分别使用快速排序和归并排序方法对其进行排序,给出排序过程中每一趟排序后的结果。
以下是使用快速排序和归并排序对给定关键码进行排序的过程:
快速排序:
1. 选择一个基准元素(pivot),可以是列表中的任意一个元素。
2. 将列表分为两部分,小于基准元素的放在左边,大于基准元素的放在右边。
3. 对左右两部分分别递归地进行快速排序。
4. 合并左右两部分得到最终的排序结果。
归并排序:
1. 将列表分为两个子列表,直到每个子列表只有一个元素。
2. 逐步合并子列表,每次合并时按照从小到大的顺序排列。
3. 重复合并步骤,直到最终得到排序结果。
使用快速排序对给定关键码进行排序的过程如下:
1. 基准元素选择为26。
2. 将列表分为两部分:[5, 1, 11, 15, 19]和[37, 61, 59, 48]。
3. 对左边的部分进行快速排序,选择11作为基准元素。
4. 将左边的部分分为两部分:[5, 1]和[15, 19]。
5. 对左边的部分进行快速排序,选择1作为基准元素。
6. 将左边的部分分为两部分:[ ]和。
7. 对右边的部分进行快速排序,选择15作为基准元素。
8. 将右边的部分分为两部分:[19]和[ ]。
9. 合并左右两部分得到[1, 5, 11, 15, 19]。
10. 对右边的部分进行快速排序,选择59作为基准元素。
11. 将右边的部分分为两部分:[48]和[61]。
12. 合并左右两部分得到[48, 59, 61]。
13. 合并左右两部分得到最终的排序结果:[1, 5, 11, 15, 19, 26, 37, 48, 59, 61]。
使用归并排序对给定关键码进行排序的过程如下:
1. 将列表分为两个子列表:[26, 5, 37, 1, 61]和[11, 59, 15, 48, 19]。
2. 对左边的子列表进行归并排序。
3. 将左边的子列表分为两个子列表:[26, 5]和[37, 1, 61]。
4. 对左边的子列表进行归并排序。
5. 将左边的子列表分为两个子列表:[26]和。
6. 合并左边的子列表得到[5, 26]。
7. 将右边的子列表分为两个子列表:[37]和[1, 61]。
8. 对右边的子列表进行归并排序。
9. 将右边的子列表分为两个子列表:和[61]。
10. 合并右边的子列表得到[1, 61]。
11. 合并左右两个子列表得到[1, 5, 26, 37, 61]。
12. 对右边的子列表进行归并排序。
13. 将右边的子列表分为两个子列表:[11, 59]和[15, 48, 19]。
14. 对左边的子列表进行归并排序。
15. 将左边的子列表分为两个子列表:[11]和[59]。
16. 合并左边的子列表得到[11, 59]。
17. 将右边的子列表分为两个子列表:[15]和[48, 19]。
18. 对右边的子列表进行归并排序。
19. 将右边的子列表分为两个子列表:[48]和[19]。
20. 合并右边的子列表得到[19, 48]。
21. 合并左右两个子列表得到[11, 15, 19, 48, 59]。
22. 合并左右两个子列表得到最终的排序结果:[1, 5, 11, 15, 19, 26, 37, 48, 59, 61]。
阅读全文