快速排序

来源:互联网 发布:mac最近删除的照片 编辑:程序博客网 时间:2024/05/22 03:02

快速排序体现的是一种分治法的思想。这里用一个例子来说明,有一个数组,6  1  2 7  9  3  4  5 10  8, 将这10个数进行排序。

第一步,先选一个基准数,这里为了方便,我们就选择第一个数6,我们需要做的就是找到一个位置k,使得k一边的数字全都小于这个基准,另一边的数字都大于这个基准。类似这样,3  1  2 5  4  6  9 7  10  8。

方法很简单,分别从两侧开始验证,start = 0, end = 9。end一侧的指针先移动,找比基准小的数。移动到5,start一侧的指针再移动,找到比基准大的数7.交换。

end一侧的指针接着移动,移动到4,start一侧的指针移动到9.交换。两边的指针都移动到3.相遇,于是停止移动。交换现在指针所指的元素和基准元素3和6。

现在的数组是,3  1  2 5  4  6  9  7 10  8。



原创粉丝点击