Struktura zestawu roboczego Iacono
Struktura danych zbioru roboczego Iacono | |
---|---|
Wynaleziony | 2001 |
Wynalezione przez | Johna Iacono |
Złożoność asymptotyczna w notacji dużego O |
|
Przestrzeń | O ( n ) |
Szukaj | O (log w(x) ) |
Wstawić | O (log n ) |
Usuwać | O (log n ) |
W informatyce struktura zestawu roboczego Iacono jest słownikiem opartym na porównaniach . Obsługuje operacje wstawiania, usuwania i uzyskiwania dostępu w celu utrzymania dynamicznego . Zestaw roboczy elementu elementów, do których uzyskano dostęp w strukturze od czasu ostatniego lub wstawienia, jeśli nigdy nie uzyskano dostępu). Wstawianie i usuwanie w strukturze zestawu roboczego trwa podczas uzyskiwania dostępu do elementu zajmuje . Tutaj zestawu roboczego .
Struktura
Aby przechowywać dynamiczny zestaw ta struktura składa się z szeregu czerwono-czarnych drzew lub innych samobalansujących drzew wyszukiwania binarnego i seria deques (kolejki dwustronne) , gdzie . Dla każdego drzewo i deque mają tę samą zawartość, a wskaźniki są utrzymywane między odpowiadającymi im elementami. Dla każdego rozmiaru i jest . Drzewo składają się z pozostałych elementów, tj. ich rozmiar wynosi . Dlatego liczba elementów we wszystkich drzewach i liczba elementów we wszystkich dekach sumują się do . Każdy element, który został wstawiony do struktury danych jest przechowywany dokładnie w jednym z drzew i odpowiadającej mu deque.
Zestaw roboczy Niezmienny
W elementach tej struktury elementy są uporządkowane według rozmiaru zestawu roboczego. Formalnie element leży po deque wtedy i tylko wtedy, gdy . Co więcej, dla każdego elementy w deque mają mniejsze zestawy robocze niż elementy w deque . Ta właściwość jest określana jako niezmiennik zestawu roboczego. Każda operacja w strukturze danych zachowuje niezmiennik zestawu roboczego.
Operacje
Podstawowa operacja w tej strukturze nazywa się przesunięciem do , i drzew Przy przejściu od do : Jeśli , to dla każdego w porządku rosnącym, element jest usuwany z \ . Odpowiedni element jest usuwany z i wstawiany do . Czas wykonania tej operacji to . Analogicznie, jeśli , to dla każdego , w kolejności malejącej, element jest usuwany z kolejki umieszczany w kolejce do . Odpowiedni element jest usuwany z i wstawiany do . Czas wykonania tej operacji to . Niezależnie od przypadku, po przesunięcia rozmiar zmniejsza się o jeden, podczas gdy rozmiar wzrasta o jeden. Ponieważ te elementy w deques są sortowane pod względem rozmiarów ich zestawów roboczych, operacja przesunięcia zachowuje niezmiennik zestawu roboczego.
Szukaj
Aby wyszukać element , wyszukaj w w kolejności rosnącej, aż do znalezienia drzewa zawierającego . Jeśli nie zostanie znalezione żadne drzewo, wyszukiwanie zakończy się niepowodzeniem. Jeśli , zostanie usunięty z a następnie wstawiony do , czyli jest przenoszony na przód konstrukcji. Wyszukiwanie kończy się wykonaniem przesunięcia z do , które przywraca rozmiar każdego drzewa i każdej deque do ich rozmiaru przed operacją wyszukiwania Czas trwania tego wyszukiwania to lub w przeciwnym razie. Dzięki właściwości zbioru roboczego każdy element w drzewach należy do zestawu roboczego . W szczególności każdy element w należy do zestawu roboczego i stąd . Zatem czas trwania pomyślnego wyszukiwania to .
Wstawić
elementu struktury odbywa się struktury umieszczenie w Wstawianie jest zakończone przez wykonanie przesunięcia z do . Aby uniknąć przepełnienia, jeśli przed przesunięciem, tj. jeśli ostatnie drzewo jest pełne, to tworzony jest pusty i Czas trwania tej operacji jest zdominowany przez przejście z do , którego czas wykonania to . Ponieważ element , jest umieszczany w , niezmiennik zestawu roboczego jest zachowywany po przesunięciu
Usuwać
elementu odbywa się poprzez wyszukiwanie na rosnącym, aż do znalezienia drzewa, które zawiera (jeśli nie zostanie znaleziony, usunięcie nie powiodło się). Pozycja jest usuwana z i . Wreszcie przejście z j \ utrzymuje rozmiar . Czas trwania tej operacji to . Niezmiennik zestawu roboczego zostaje zachowany, ponieważ usunięcie elementu nie zmienia kolejności zestawu roboczego elementów.
Dyskusja
Drzewa splay to samodopasowujące się drzewa wyszukiwania wprowadzone , drzewa splay są w stanie wykonywać operacje wstawiania i usuwania w czasie bez przechowywanie wszelkich informacji o saldzie w węzłach. Co więcej, twierdzenie o zbiorach roboczych dla drzew splay stwierdza, że koszt dostępu do elementu w drzewie splay wynosi amortyzowany . Struktura zestawu roboczego Iacono zapewnia taki sam czas działania wyszukiwania, wstawiania i usuwania w najgorszym przypadku. W związku z tym oferując alternatywę dla splay drzew.