Взвешенная медиана выборки — это 50% взвешенный процентиль (см. этот пост @ перекрестная проверка для получения дополнительной информации)/
Мне было интересно, как можно расширить алгоритм, используемый для поиска медианы бегущего потока чисел, подробно описанных здесь (с двумя кучами, минимальной кучей для левой стороны и максимальной кучей для правой стороны), чтобы эффективно вычислить взвешенную медиану из потока double
значений и весов.
У меня была идея использовать тот же метод, что и при вычислении медианы из невзвешенного потока чисел, но просто добавить дополнительные значения, если веса не равны единице (например, значение с весом 2 будет вставлено дважды). Однако это не очень хорошо масштабируется с весами, которые могут быть удвоены, а также кажется довольно неэффективным с точки зрения использования памяти.
Спасибо!