【题目25】求一个无序数组的第nth大的数

来源:互联网 发布:require.js中文文档 编辑:程序博客网 时间:2024/05/18 17:01

分析: 可以利用跟快排一样的分割法,分到最后的结果是

Nth左边的数小于Nth,右边的数大于Nth的值。

 

实现原理:假设求第3th,也就第四个数

2  4 15  6 9 12 20

             ->

第一次划分结果:

2  4  6      15 9 12 20

     left   | -> right

第二次划分结果:

2 4 6    9      15 12 30 最后划分到达Nth位置,结束划分。

          ->   |

            left   right

 

核心代码: