ps: 如果有任何问题可以评论留言,我看到后会及时解答,评论或关注,您的鼓励是我分享的最大动力
介绍:
快速排序是历史上最著名的算法之一。1959年由 托尼 霍尔 (Tony Hoare)发明。
目标:
将一个数组按照由低到高(或者由高到低)的顺序排序。
核心思想:
1、基准:在数组中选一个数,作为基准(pivot)
2、分区:将数组根据基准分为三部分(即三个数组):
less:数组中所有数小于基准
equal:数组中所有数等于基准
high:数组中所有数大于基准
三者组合就是分区上的升序,再在3中对分区升序细化至每个元素
3、递归:对 less 和 high 递归做2中的分区,直到数组中只有一个元素不能再分
实现:
快排根据分区的实现方法和基准的选择不同,有不同的版本,性能也有所不同
1、Kotlin (最容易理解的实现版本)