目录
- 排序思路
- 代码实现
- QuickSelect算法实现
1. 排序思路
快速排序主要体现的是一种分治的思想,每次将待排序列表用中轴元素将列表拆分两部分,前面部分是小于中轴元素,后面部分大于中轴元素。然后分别对中轴的前面部分和后面部分再次进行划分,直至整个列表都有序。
2. 代码实现
版本1
版本 2
对于partition功能,第二种版只需要关注一部分,将一部分划分好,另一部分就会自动划分好。比如说只把小于中轴的元素放在前面,然后大于中轴元素的部分就会自动归于后面那部分。
3. QuickSelect算法
利用快排的思想,可以从大量数据中选出第k大(小)的数据。常规思路可以先排序再取数,不过在大量数据的情况不必对所有的数据进行排序,只需要判断k在中轴的哪部分,然后再去响应部分排序就可以了。