快速排序过程

来源:百度知道 编辑:UC知道 时间:2024/09/20 04:07:22
数据结构里的.
8,4,2,5,7快速排序过程?
能简单的说下过程吗?
那个谢谢,可是你说的我貌似明白了,我那题还是不会诶。
做出来的过程跟答案有点出入,所以想知道我那题的过程
偶挺笨的

快速排序的概念很简单就是把序列分成三部分。一个中点,中点的左边都比中点“小”,右边都比中点“大”

然后再分别对左右两边进行相同的处理。可以想象这样会把序列不断切分。而当序列小于三个元素的时候,这么处理的结果就是从小到大排列。

这部分很简单,关键是怎么分那三部分。一般是这么做,换个序列...

8 4 2 1 7

首先取正中的元素,这里是2
然后再左边找比2大的,第一个8就是
再从右边找比2小的,是1
我们交换8和1
1 4 2 8 7

然后继续,1之后比2大的是4
但是8之后已经没有比2小的了,我们只能把2和4交换,同时记录中点的位置(因为2挪地方了)
1 2 4 8 7

然后2左边只有1个元素不用再处理了
右边的4 8 7我们以8为中点。
按照刚才的方法这里需要把8和7交换
4 7 8

8右边没了,处理4 7,就不说了,而且这个本身顺序也没问题,拼起来就是

(1) 2 ((4 7) 8)