【數組】無序數組求中位數


題目:

無序數組求中位數。

解答:

利用快排的思想

1、先進行一趟快排,使得div左邊的值都比arr[div]小,div右邊的值都比arr[div]大,但是這個div的位置是不確定的,可能位於中間,也可能偏左或者偏右。

2、計算出mid所在的下標,如果是奇數則是mid=(size+1)/2,如果是偶數則是mid=size/2。

3、此時需要比較mid和div所在的位置。如果mid在div所在位置的左邊,此時就要遞歸去左半區間查找;如果mid在div的右邊,此時就要遞歸去右半區間查找;如果恰好相等則說明div/mid所在的位置就是中位數。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM