patiton专题

快排函数Patiton来求解第K大的数

利用快速排序的特点:第一遍排序会确定一个数的位置,这个数左边都比它大,右边都比他小(降序),当左边区间大于K时,说明我们求的第K大数在左边区间,这时我们可以舍弃右边区间,将范围缩小到左边区间从而重复上述过程,直到确定一个数的位置时,左边区间的小是K-1那么这个数字就是我们所求。 用于快速排序升序时,是使得左边的数都比pivot小,右边的数都比pivot数大。区别只在于左右查找时的条件。 下面贴