Я шукаю бібліографічні посилання на такий алгоритм / проблему: я назвав його "BiSelect" або "t-ary Select" або "Select in Union of Sorted Arrays", але я думаю, що він був введений раніше під іншою назвою?
Проблема
Розглянемо наступну проблему:
Враховуючи неперервані відсортовані масиви A 1 , … , A k відповідних розмірів n 1 , … , n k та ціле число t ∈ [ 1 .. ∑ n i ] , яке t -ве значення їх відсортованого об’єднання ∪ i A i ?
Рішення
k = 2 k = 2 A 1 [ t / 2 ] A 2 [ t / 2 ] A 1 [ t / 2 .. t ] A 2 [ 1. t / 2 ] A 1 [ 1 .. t / 2 ] A 2t / 2 n 1 n 2 t
Це узагальнює дещо складніший алгоритм, що працює у часі для більших значень , виходячи з обчислення медіани значень для : найменших елементів можна додатково ігнорувати в масивах де менший від медіани, а елементи рангів у можна додатково ігнорувати в інші масиви, що призводить до зменшення вдвічі в кожному рецидиву (і вартості для медіани).k A i [ t / k ] i ∈ [ 1 .. k ] t / k k / 2 A i [ t / k ] [ t - t / k . . ] k / 2 t O ( k )
Список літератури?
Я задоволений своїми рішеннями, але вважаю, що проблема (та її рішення) вже була відома. Він пов'язаний з лінійним алгоритмом часу для обчислення медіани (шляхом сортування груп за розміром та повторення на медіані їх середніх), але є дещо більш загальним. Я попросив декілька коледжів у Мадальго в Орхусі (Данія), а потім деякі інші в семінарі «Стрінгологія» (Руан), не маючи успіху: сподіваюся, що хтось більш обізнаний може допомогти на обміні стеками ...
Мотивації
Рішення цієї проблеми мають додатки для відкладеної структури даних на масивах (дійсно, це може розглядатися як оператор у відкладеній структурі даних для об'єднання відсортованих масивів); і більш стислим способом - до адаптивного обчислення оптимальних вільних кодів префікса.