知识点 排序,性质 思路 在快速排序的过程中,每次会找到一个基准值,将大于基准值的数放在左边,小于基准值的数放在右边,这个过程实际上就确定了基准值的排名!此时如果基准值的排名小于 ,那么说明第 大的水晶在基准值的右边,否则就在左边,递归这个过程就可以找到第 大的水晶! 实际上这个过程是先用 的时间复杂度将区间分成两个部分,然后再到其中一个部分去寻找答案,在最坏情况下如果每次基准值都将区间分成大小为L和N-L的区间,然后再到 的区间里去寻找那么总复杂度可以达到O(N*N)。但是如果每次随机选择基准值,那么期望时间复杂度为O(N) 核心代码 int kth (int l, int r, ...