对下面的关键字集{30,15,21,40,25,26,36,37,10,20},写出快速排序的每趟结果和最终结果。
时间: 2023-08-31 10:43:16 浏览: 184
### 回答1:
好的,针对关键字集{30,15,21,40,25,26,36,37,10,20},快速排序的每趟结果和最终结果如下:
第一趟:
- 以30作为基准值,左边小于30的数字有15、21、25、26、10、20,右边大于30的数字有40、36、37
- 左边数字再次进行快速排序,以25作为基准值,左边小于25的数字有15、21、10、20,右边大于25的数字有26
- 右边数字再次进行快速排序,以37作为基准值,左边小于37的数字有36,右边大于37的数字有40
- 最终结果为:{15,21,25,26,10,20,30,36,37,40}
第二趟:
- 以15作为基准值,左边小于15的数字有10,右边大于15的数字有21、20
- 以21作为基准值,左边小于21的数字有20,右边大于21的数字为空
- 最终结果为:{10,15,20,21,25,26,30,36,37,40}
第三趟:
- 以25作为基准值,左边小于25的数字为空,右边大于25的数字有26、30、36、37、40
- 最终结果为:{10,15,20,21,25,26,30,36,37,40}
第四趟:
- 以10作为基准值,左边小于10的数字为空,右边大于10的数字有15、20、21、25、26
- 最终结果为:{10,15,20,21,25,26,30,36,37,40}
第五趟:
- 以20作为基准值,左边小于20的数字有15,右边大于20的数字有21、25、26
- 最终结果为:{10,15,20,21,25,26,30,36,37,40}
第六趟:
- 以30作为基准值,左边小于30的数字有10、15、20、21、25、26,右边大于30的数字有36、37、40
- 左边数字再次进行快速排序,以21作为基准值,左边小于21的数字有10、15、20,右边大于21的数字有25、26
- 右边数字再次进行快速排序,以37作为基准值,左边小于37的数字有36,右边大于37的数字有40
- 最终结果为:{10,15,20,21,25,26,30,36,37,40}
至此,关键字集{30,15,21,40,25,26,36,37,10,20}经过快速排序后的结果为{10,15,20,21,25,
### 回答2:
给定关键字集{30,15,21,40,25,26,36,37,10,20},我们可以使用快速排序来对其进行排序。
第一趟快速排序:
选择一个基准元素,可以选择第一个元素30作为基准。
定义两个指针i和j,分别指向关键字集的起始和结尾。
从j开始,向前寻找第一个小于基准元素的元素,找到后将其与i所指元素交换。
然后i向后移一位。
接下来,从i开始向后寻找第一个大于基准元素的元素,找到后将其与j所指元素交换。
然后j向前移一位。
重复上述过程,直到i和j相遇。
此时,将基准元素放在相遇位置,将数组分成两部分。
左边部分的关键字小于基准元素,右边部分的关键字大于基准元素。
第一趟结果:{20, 15, 21, 10, 25, 26, 30, 37, 36, 40}
第二趟快速排序:
对左边部分继续进行快速排序,选择基准元素为20。
定义指针i和j,指向左边部分的起始和结尾。
重复同样的操作,直到i和j相遇。
将基准元素放在相遇位置,将左边部分分成两部分。
第二趟结果:{10, 15, 20, 21, 25, 26, 30, 37, 36, 40}
第三趟快速排序:
左边部分已经有序,不需要再进行排序。
最终结果:{10, 15, 20, 21, 25, 26, 30, 36, 37, 40}
快速排序的思想是通过不断划分基准元素的位置,将数组分成两个部分,再分别对这两个部分进行排序。最终能够得到一个有序的数组。快速排序的时间复杂度平均为O(nlogn),在最坏情况下为O(n^2)。
### 回答3:
快速排序是一种常见的排序算法,它的基本原理是通过选择一个基准数,然后将数组分成左右两个部分,使得左边的数都小于基准数,右边的数都大于基准数。接下来在左右两个部分分别进行快速排序,递归实现最终的排序结果。
对于给定的关键字集{30,15,21,40,25,26,36,37,10,20},我们可以选择其中的一个数作为基准数,这里我们选择第一个数30。然后按照以下步骤进行快速排序:
1. 第一趟快速排序:
基准数:30,左边部分:15,21,25,26,20,10;右边部分:40,36,37
此时基准数已经找到了正确的位置,左边的数都小于30,右边的数都大于30。
2. 第二趟快速排序:
基准数:15,左边部分:10,12,20;右边部分:21,25,26
此时基准数已经找到了正确的位置。
3. 第三趟快速排序:
基准数:10,左边部分:无;右边部分:12,20
此时基准数已经找到了正确的位置。
4. 第四趟快速排序:
基准数:21,左边部分:无;右边部分:25,26
此时基准数已经找到了正确的位置。
5. 第五趟快速排序:
基准数:25,左边部分:无;右边部分:26
此时基准数已经找到了正确的位置。
6. 第六趟快速排序:
基准数:26,左边部分:无;右边部分:无
此时基准数已经找到了正确的位置。
7. 第七趟快速排序:
基准数:40,左边部分:36,37;右边部分:无
此时基准数已经找到了正确的位置。
至此所有元素都已经找到了正确的位置,最终的排序结果为{10,15,20,21,25,26,30,36,37,40}。
阅读全文