給定一個無需數(shù)組a,長度為n,以及一個整數(shù)k(0
不了解快速排序的話,可以看快速排序,快速搞定
a = {4,3,2,1,5,6,7,8,9}
我們選取a[0]
(4)為軸值,那么將數(shù)組劃分后,得:a = {3,2,1,4,5,6,7,8,9}
,這時候軸值4的位置是3,我們可以看到,第三大的數(shù)就是4。那么我們可以通過軸值的位置與k進行比較,如果k==p,那么a[p]就是第k大的數(shù)了。如果k> p,那么軸值一定在[p+1,n]
的范圍,所以我們只需要對右邊進行遞歸就好。如果k< p,只需要對左邊進行遞歸。新聞熱點
疑難解答