ПРИМІТКА . Питання було перетворено в моїх відповідях: якщо припустити, що ми можемо знайти найнижчих предків рідних братів за час, чи може АНН справді виконуватися в ?
Квадрат є ефективними просторовими показниками. У мене є головоломка з реалізацією пошуку найближчого сусіда в стислій структурі квадрата, як описано в [2]. (Не вдаючись до деталей, пошук ведеться зверху вниз уздовж так званих рівновіддалених квадратів, що закінчується в хвостовому вузлі рівновіддаленого шляху. На доданому зображенні це може бути будь-який із вузлів на південному сході, заповнений крапками.)
Щоб їх алгоритм працював, необхідно підтримувати для кожного вузла - квадрат з щонайменше двома не порожніми квадрантами - покажчиками на кожен найнижчий (найближчий в ієрархії) вузол предка в кожному з чотирьох напрямків (північ, захід, південь , схід). Вони позначені зеленими стрілками для предка на захід (вузли стрілки в центрі площі предка).
У статті стверджується, що ці покажчики можуть бути оновлені в O (1) під час вставки та видалення точок. Однак, дивлячись на вставку зеленої точки, здається, мені потрібно оновити будь-яку довільну кількість покажчиків, в даному випадку - шість з них.
Я сподіваюся на хитрість робити це оновлення вказівника постійно. Може, є така форма опосередкованості, яку можна експлуатувати?
Редагувати:
Відповідний розділ із статті 6.3, де написано: "якщо шлях має вигини, то окрім найнижчих предків q , ми також повинні враховувати для кожного з двох d напрямів найнижчий предка q, що йде в цьому напрямку [...] Пошук цих квадратів з q можна зробити за O ( 1 ) час на квадрат, якщо ми пов'язуємо додаткові 2 d покажчики до кожного квадрата в Q 0вказуючи на своїх найближчих предків для кожного напрямку. Ці вказівники також можуть бути оновлені в час під час вставки або видалення точки. "
[2]: Еппштейн, Д. і Гудрих, МТ і Сонце, Дж. Дж., «Пропуск квадрату: проста динамічна структура даних для багатовимірних даних», в матеріалах двадцять першого річного симпозіуму з обчислювальної геометрії, стор. 296—305 , 2005.