Выберите в объединении отсортированных массивов: уже известно?

12

Я ищу библиографические ссылки для следующего алгоритма / проблемы: я назвал его "BiSelect" или "t-ary Select" или "Select in Union of Sorted Arrays", но я предполагаю, что он был представлен ранее под другим именем?

проблема

Рассмотрим следующую проблему:

Для заданных непересекающихся отсортированных массивов A 1 , , A k соответствующих размеров n 1 , , n k и целого числа t [ 1 .. n i ] , каково t- ое значение их отсортированного объединения я а я ?kA1,,Akn1,,nkt[1..ni]t iAi

Решения

O(lgmin{n1,n2,t})k=2k=2A1[t/2]A2[t/2]A1[t/2..t]A2[1..t/2]A1[1..t/2]A2[t/2..t]t/2n1n2t

Это обобщает чуть более сложный алгоритм, работающий во времени для больших значений , основанный на вычислении медианы значений для : Наименьшие элементы могут далее игнорироваться в массивах где меньше, чем медиана, а элементы рангов в могут далее игнорироваться в другие массивы, приводящие к уменьшению вдвое в каждом повторении (и стоимости для медианы).O(klgt)kAi[t/k]i[1..k]t/kk/2Ai[t/k][tt/k..]k/2tO(k)

Ссылки?

Я доволен своим решением (ями), но полагаю, что проблема (и ее решение) уже были известны. Он связан с алгоритмом линейного времени для вычисления медианы (путем сортировки групп по размеру и рекурсии по медиане их середин), но является несколько более общим. Я спросил несколько колледжей в Мадальго в Орхусе (Дания), а затем несколько других на семинаре по стрингологии (Руан), но безуспешно: я надеюсь, что кто-то, кто более опытен, может помочь в обмене стеками ...5

Мотивы

Решения этой проблемы имеют приложения к отложенной структуре данных для массивов (действительно, это можно рассматривать как оператор в отложенной структуре данных для объединения отсортированных массивов); и в более запутанном виде, к адаптивному вычислению оптимальных кодов без префиксов.

Джереми
источник

Ответы:

2

Алгоритм, описанный Фредериксоном и Джонсоном в 1982 году, считает, что все множества имеют одинаковый размер. Они также описали в 1980 году оптимальное решение, которое использует преимущества различных размеров отсортированных наборов. Сложность этого алгоритма находится в пределах .O(k+i=1klogni)

Ссылка

Грег Н. Фредериксон и Дональд Б. Джонсон. 1980. Обобщенный отбор и ранжирование (Предварительная версия). В материалах двенадцатого ежегодного симпозиума ACM по теории вычислений (STOC '80). ACM, Нью-Йорк, Нью-Йорк, США, 420-428. DOI = 10.1145 / 800141.804690 http://doi.acm.org/10.1145/800141.804690

Карлос Очоа
источник
20

Фредериксон и Джонсон получили оптимальный результат в 80-х годах. Пусть , тогда существует алгоритм, решающий вашу задачу в .p=min(k,t)O(k+plogtp)

Ссылка

Г. Н. Фредериксон, Д. Б. Джонсон " Сложность выбора и ранжирования по x + y и матрицам с отсортированными столбцами " J. Comput. System Sci., 24 (2) (1982), с. 197–208

Чао Сюй
источник
0

Случай k = 2 возникает в параллельной сортировке слиянием, поскольку объединение двух отсортированных массивов из разных потоков необходимо разделить между двумя потоками, чтобы поддерживать одинаковую степень параллелизма. Это домашнее решение является одним из примеров.

KWillets
источник