排序算法之快速排序QuickSort(递归和非递归两种实现方式)

一、进行划分
快速排序的原理:按照数组中的一个数,将数组划分成为小于这个数、等于这个数,大于这个数三个部分从而进行排序。
首先我们定义一个partition方法,实现划分的功能: 定义L为数组的左边界,R为数组的右边界,把arr[R]作为划分值, 即L初始值定义为数组 0 的位置,R初始值定义为数组最大索引(arr.length-1)。 定义一个小于区域最右边的位置lessR,初始值为-1。 定义一个大于区域最左边的位置moreL,初始值为R(即最大索引位置)。 定义当前位置为index,初始值为0。 index从第一位开始,和arr[R]进行比较:
如果当前位置小于划分值(arr[R]),则交换index和lessR+1的位置,然后index向后移动一位。即 :交换位置index++ 和 ++lessR;如果大于划分值,则交换index和moreL-1的位置, 但是index不移动,但是moreL向前移动

排序算法之快速排序QuickSort(递归和非递归两种实现方式)最先出现在Python成神之路

版权声明:
作者:主机优惠
链接:https://www.techfm.club/p/20328.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>