思想
快速排序每一趟排序,都会寻找一个基准元素,有的采用第一个元素,有的会随机生成一个,但是基本思想是不变的,一趟排序结束,会形成以基准元素为分界点的两部分,其中左边比基准元素小(假设从小到大排序),右边比基准元素大。然后再以相同的方法处理左边和右边两部分,即递归。
实现(java)
1 | import com.jiajia.ArrayUtil.ArrayUtil; |
很多方法会写成两个函数,一个用来返回一趟结束后基准元素的位置,然后一个外围函数用来递归,其实和这个类似,其实就是将后面两个递归函数之前的部分封装成一个函数而已!
参考资料
快速排序(过程图解)
白话经典算法系列之六 快速排序 快速搞定
值得收藏的十大经典排序算法
最后
此致,敬礼