对关键字序列(Tim,Kay,Eva,Roy,Dot,Jon,Kim,Ann,Tom,Jim,Guy,Amy)进行快速排 序,画出第一趟快速排序的过程。
时间: 2023-09-17 13:10:02 浏览: 246
数据结构课后习题及解答
快速排序的基本思路是:选取一个基准元素,将序列中比它小的元素放在它的左边,比它大的元素放在它的右边,然后对左右两边分别进行递归排序。第一趟快速排序的过程如下:
1.选取基准元素:选择序列中的第一个元素 Tim 作为基准元素。
2.进行划分:从序列的第二个元素开始,依次将每个元素与基准元素进行比较。将比基准元素小的元素放在基准元素左边,大于等于基准元素的元素放在基准元素右边。
初始状态:
(Tim,Kay,Eva,Roy,Dot,Jon,Kim,Ann,Tom,Jim,Guy,Amy)
第一次划分后:
(Tim,Kay,Eva,Amy,Dot,Jon,Kim,Ann,Tom,Jim,Guy,Roy)
3.确定基准元素位置:此时基准元素 Tim 已经被放置在了序列中的正确位置,它的左边都是比它小的元素,右边都是大于等于它的元素。我们可以将序列分成两个部分,分别对左右两个部分进行递归排序。
左半部分:(Eva,Amy,Dot,Jon,Kay,Kim,Ann,Tom,Jim,Guy)
右半部分:(Roy)
注意:在这个过程中,基准元素的位置不发生改变,因此它不需要参与左右子序列的排序。
4.递归排序:对左右两个部分分别进行递归排序,直到所有子序列都有序。
左半部分的排序过程:
选取基准元素:选择序列中的第一个元素 Eva 作为基准元素。
进行划分:从序列的第二个元素开始,依次将每个元素与基准元素进行比较。将比基准元素小的元素放在基准元素左边,大于等于基准元素的元素放在基准元素右边。
第一次划分后:
(Eva,Amy,Dot,Jon,Kay,Kim,Ann,Tom,Jim,Guy)
左半部分已经有序,无需递归排序。
右半部分的排序过程:
选取基准元素:选择序列中的第一个元素 Roy 作为基准元素。
进行划分:从序列的第二个元素开始,依次将每个元素与基准元素进行比较。将比基准元素小的元素放在基准元素左边,大于等于基准元素的元素放在基准元素右边。
第一次划分后:
(Roy)
右半部分已经有序,无需递归排序。
最终排序结果为:
(Amy,Ann,Dot,Eva,Guy,Jim,Jon,Kay,Kim,Roy,Tim,Tom)
阅读全文