带权中位数(Weighted Median),其定义和中位数的差别在于:
中位数:n个元素集合中,第n/2小的元素。
带权中位数:对于n个互不相同的元素集合x1、x2……xn,其权重依次为w1、w2……wn。令W = sigma(wi),则带权中位数xk满足:
sigma(wi)(xi<xk)<W/2 (1)
sigma(wi)(xi>xk)<=W/2
其中sigma表示求和。
带权中位数满足:sigma(|xi-xk|*wi)最小。
带权中位数的求法如下:
1 按照从小到大的顺序给x1……xn排序
2 遍历数组,直至找到第一个xk,满足sigma(wi)(xi<xk)>=W/2,则xk就是要找的带权中位数。
该算法的时间复杂度为O(nlgn)。
还有线性时间的算法,类似于Select算法。
带权中位数的应用很多,如下例:
带权中位数
最新推荐文章于 2024-07-24 20:25:39 发布