3
计算滑动窗口中位数的非平凡算法
我需要计算运行中位数: 输入: ,,向量。k (x 1,x 2,… ,x n)ñnnķkk(x1个,X2,… ,xñ)(x1,x2,…,xn)(x_1, x_2, \dotsc, x_n) 输出:向量,其中是的中位数。ÿ 我(X 我,X 我+ 1,... ,X 我+ ķ - 1)(y1个,ÿ2,… ,yn − k + 1)(y1,y2,…,yn−k+1)(y_1, y_2, \dotsc, y_{n-k+1})ÿ一世yiy_i(x一世,X我+ 1,… ,xi + k − 1)(xi,xi+1,…,xi+k−1)(x_i, x_{i+1}, \dotsc, x_{i+k-1}) (不作弊;我希望有确切的解决方案。元素是大整数。)X一世xix_i 有一个简单的算法可以维护大小为的搜索树;总运行时间为。(这里的“搜索树”是指一些有效的数据结构,支持对数时间内的插入,删除和中位数查询。)O (n log k )ķkkØ (ñ 日志k )O(nlogk)O(n \log k) …