【数组】无序数组求中位数

题目:

无序数组求中位数。

解答:

利用快排的思想

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所在的位置就是中位数。

 

 

 

posted @ 2020-05-11 11:36  梦醒潇湘  阅读(1229)  评论(0)    收藏  举报