Если у вас есть один миллиард номеров и сто компьютеров, каков наилучший способ найти медиану этих чисел?
Одно из решений, которое у меня есть:
- Разделить набор поровну между компьютерами.
- Сортировка.
- Найдите медианы для каждого набора.
- Сортировка наборов на медианах.
- Объедините два набора за раз от самой низкой до самой высокой медианной.
Если у нас есть m1 < m2 < m3 ...
, тогда сначала слияние Set1
и Set2
, и в полученном наборе мы можем отбросить все числа ниже медианы Set12
(объединены). Поэтому в любой момент времени у нас есть равные по размеру множества. Кстати, это невозможно сделать параллельно. Любые идеи?