Wszyscy wiemy, że odróżnienia elementów w modelu opartym na porównaniu nie można zrobić w czasie . Jednak na słownej pamięci RAM można osiągnąć lepiej.
Oczywiście, jeśli przyjmie się istnienie idealnej funkcji skrótu, którą można obliczyć w czasie liniowym, otrzymamy liniowy algorytm czasu dla odróżnienia elementu: po prostu utrzymuj wartości mieszania jeden po drugim i zwracaj 1, jeśli występuje kolizja.
Istnieją jednak dwa problemy: 1) większość konstrukcji doskonałych funkcji skrótu, które mogłem znaleźć, wykorzystała losowość i 2) Nie mogę nigdzie znaleźć dyskusji na temat czasu wstępnego przetwarzania, tj. Czasu potrzebnego do podjęcia decyzji, którą funkcję skrótu wybierzesz używać na podstawie wejściowego zestawu liczb.
Fredman i wsp. „ Przechowywanie rzadkiej tabeli z czasem dostępu najgorszym przypadku ” rozwiązuje pierwszy problem, zapewniając funkcję skrótu z czasem dostępu w najgorszym przypadku, ale nie mówi nic o drugim problemie .
Podsumowując, oto, czego chcę:
Zaprojektować algorytm danym zestawie z liczb (każda liczba jest bitów) na słowo-RAM o długości słowa , znajduje się funkcja mieszająca W czas, gdzie . Funkcja powinna mieć właściwość, że dla dowolnego liczba elementów odwzorowanych na jest stała, a obliczenie powinno przyjąćn w w h : S → { 1 , … , m } O ( n ) m = O ( n ) h j ∈ { 1 , … , m } S jO ( 1 )czas w „rozsądnym” słowie-modelu RAM, tzn. model nie powinien pozwalać na „egzotyczne” funkcje na słowach oceniane w czasie .
Chciałbym również wiedzieć, czy istnieją algorytmy rozwiązujące rozróżnienie elementów w słowie-RAM, które w ogóle nie używają funkcji skrótu.
źródło
Odpowiedzi:
Odróżnienie elementów można rozwiązać deterministycznie w modelu pamięci RAM w czasie w czasie :O ( n loglogn ) ⊂ o ( n logn )
Sortuj w czasie w obrębie twoich n liczb w bitów przy użyciu algorytmu sortowania opisanego przez Hana w STOC 2002 („Sortowanie deterministyczne w O ( n log log n ) przestrzeni i przestrzeni liniowej”), a następnie skanuj liniowo czas na kolizje.O ( n loglogn ) n w O ( n loglogn )
O ile mi wiadomo, jest to najlepszy wynik znany do dziś.
źródło
To właśnie robi wspomniany papier FKS - i zajmuje to czas liniowy (w oczekiwaniu). Analiza znajduje się na stronie 5 ... http://www1.icsi.berkeley.edu/~luby/PAPERS/pairwise.ps
źródło