Прості врівноважені дерева з O (1) конкатом?


12

У сортованих списках з чисто функціональним найгіршим випадком , упорядкованим постійним часом , Brodal et al. представити чисто функціональні врівноважені дерева з O (1) з’єднувати та O (lg n) вставляти, видаляти та знаходити. Структура даних дещо складна.

Чи є більш просте дерево збалансованого пошуку з O (1) об'єднаним, функціональним чи ні?

Відповіді:


5

Ви можете тривіально скласти структуру даних із амортизованим часом конкатенації O (1) , просто вставивши все з одного дерева на інше на конкатенацію (яка має O (n log n) вартість, точно таку, яка була використана при побудові цього дерева в перше місце, тому загальний час все ще O (n log n)), але це обман.

У найгіршому випадку O (1) автори стверджують, що це була відкрита проблема для будь-якої структури даних, тому я не думаю, що ви збираєтесь знайти просту відповідь.


1
Я не впевнений, чи Бродал та ін. означало, що це відкрита проблема навіть в ефемерних умовах. Ви говорите про речення в рефераті, яке посилається на "відкриту проблему, поставлену Капланом і Тарханом"? Якщо так, то я думаю, що з контексту цього документу зрозуміло , що K&T говорили, що питання було відкрито в чисто функціональній структурі.
jbapple

Я завантажив папір, але в ньому чітко сказано, що "Вони [K&T] запитали, чи може операція приєднання реалізуватися в O (1) найгірший час навіть в ефемерному режимі, підтримуючи пошук і оновлення в логарифмічний час".
Blaisorblade

Добрий момент, Блейзорблейд. Я пропустив це речення.
jbapple

Чи справді це банальне рішення правильне? Мені очевидно, що воно працює лише в тому випадку, якщо дане дерево приєднане до іншого лише один раз. Якщо я застосую ту саму конструкцію до рекурсивного конкатенації списків однотонних, я отримаю складність O ( n log n ) , що відповідає складності O ( n log 2 n ) у випадку дерева. nO(nlogn)O(nlog2n)
Джеффрі Ірвінг

4

Я завантажив згаданий вами папір, і він відповідає "ні", принаймні на час публікації газети. Це з двох причин:

  1. для належного перегляду пов’язаних робіт необхідний документ, і вони роблять це у вступі зі зведенням на рис. 1, де сказано "ні". Принаймні, якщо він був опублікований на авторитетній конференції, але це виглядає так (Бродал цитується пару разів у "Чисто функціональних структурах даних" К. Окасакі, посилання на цю тему).

    Однак у тексті вони згадують алгоритм із часом пошуку O (log n log log n) та конкатенацією в O (1) час, накреслений у документі K&T від STOC '96. Це може бути цікавим для вас.

    • відкритий виклик K&T, який вони вирішують, стосується словників з O (1) конкатенації та O (log N) пошуку / вставки / видалення, навіть для ефемерних структур.

Пункт 1. також гарантує, що ви можете просто шукати документи, в яких цитується цей документ, щоб знайти будь-які пізніші результати, вони повинні були б його цитувати.

Якщо питання мало практичне значення (але це не повинно бути), я вважаю, що постійні фактори важливіші за різницю між O (1) та O (log N) (про що йдеться у вступі Седжевіка до алгоритмів), вам потрібно шукати лише орієнтири для випадку використання вашої програми.


ESOP - це авторитетна конференція, якщо це саме ви мали на увазі.
Чарльз Стюарт

Це було моє питання, але для ESA, де опубліковано документ, а не ESOP (можливо, ви це мали на увазі). Я не був впевнений, що можу покластися на звання конференції. Ця неофіційна сторінка рейтингу говорить про те, що також ESA є досить авторитетним: www3.ntu.edu.sg/home/assourav/crank.htm
Blaisorblade
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.