题目:
无序数组求中位数。
解答:
利用快排的思想
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所在的位置就是中位数。