思路 求第k小的数,第一时间就能想到和排序有关,但这个数据量用冒泡排序什么的肯定会很糟糕,所以用到了快速排序 在快速排序时,我们先选取一个基准值,然后把数组中所有比基准值小的数放到基准值左边,比基准值大的数放到基准值右边,等于基准值的数任意放在哪一边。每一次完成这样的操作以后,我们根据k和基准值的大小关系,选取左区间或右区间递归,直到区间里只剩一个数,那就是我们要的第k小数 代码 #include <iostream> using namespace std; int num[5000005]; inline int read() { int x = 0, f = 1; char ...