给定一个无需数组a,长度为n,以及一个整数k(0
不了解快速排序的话,可以看快速排序,快速搞定
a = {4,3,2,1,5,6,7,8,9}
我们选取a[0]
(4)为轴值,那么将数组划分后,得:a = {3,2,1,4,5,6,7,8,9}
,这时候轴值4的位置是3,我们可以看到,第三大的数就是4。那么我们可以通过轴值的位置与k进行比较,如果k==p,那么a[p]就是第k大的数了。如果k> p,那么轴值一定在[p+1,n]
的范围,所以我们只需要对右边进行递归就好。如果k< p,只需要对左边进行递归。新闻热点
疑难解答