ALG 0

ALG 0



200 Rozdział 7. Algorytmy przeszukiwania

Rekordy E i F zostały zapamiętane w momencie stwierdzenia przepełnienia na kolejnych pozycjacli 6 i 7. Sugeruje to, że gdzieś „w tle” musi istnieć zmienna zapamiętująca ostatnią wolną pozycję strefy przepełnienia.

Również w jakiś sposób należy się umówić, co do oznaczania pozycji wolnych w strefie podstawowej to już leży w gestii programisty i zależy silnie od struktury rekordów, które będą zapamiętyw-ane.

Rozwiązanie uwzględniające podział tablic nie należy do skomplikowanych, co jest jego niewątpliwą zaletą. Stworzenie funkcji wstaw i szukaj jest kwestią kilku minut i zostaje powierzone Czytelnikowi jako proste ćwiczenie.

Dla ścisłości należy jednak wskazać pewien słaby punkt. Otóż nie jest zbyt oczywiste, co należy zrobić w przypadku zapełnienia strefy... przepełnienia! (Wypisanie „ładnego” komunikatu o błędzie nie likwiduje problemu). Użycie tej metody powinno być poprzedzone szczególnie starannym obliczeniem rozmiarów tablic, tak aby nie załamać aplikacji w najbardziej niekorzystnym momencie - na przykład przed zapisem danych na dysk.

Próbkowanie liniowe

W opisanej poprzednio metodzie w sposób nieco sztuczny rozwiązaliśmy problem konfliktów dostępu w tablicy T. Podzieliliśmy ją mianowicie na dwie części służące do zapamiętywania rekordów, ale w różnych sytuacjach. O ile jednak dobór ogólnego rozmiaru tablicy Rmn jest w wielu aplikacjach łatwy do przewidzenia, to dobranie właściwego rozmiaru strefy przepełnienia jest w praktyce bardzo trudne. Ważną rolę grają tu bowiem zarówno dane, jak i funkcja H i w zasadzie należałoby je analizować jednocześnie, aby w przybliżony sposób oszacować właściwe rozmiary' obu części tablic. Problem oczywiście znika samoczynnie, gdy dysponujemy bardzo dużą ilością wolnej pamięci, jednak przewidywanie a priori takiego przypadku mogłoby być dość niebezpieczne.

Jak zauważyliśmy wcześniej, konflikty dostępu są w metodzie transformacji kluczowej nieuchronne. Powód jest prosty: nie istnieje idealna funkcja H, która rozmieściłaby równomiernie wszystkie Rmax elementów po całej tablicy T. Jeśli taka jest rzeczywistość, to może zamiast walczyć z nią-jak to usiłowały czynić poprzednie metody - spróbować się do niej dopasować?

Idea jest następująca: w momencie zapisu nowego rekordu^ do tablicy, w przypadku stwierdzenia konfliktu możemy spróbować zapisać element na pierwsze kolejne wolne miejsce. Algorytm funkcji wstaw byłby wówczas następujący (zakładamy próbę zapisu do tablicy Trekordu x charakteryzowanego kluczem v): 5 Oczywiście może to być również dowolna zmienna prosta!


Wyszukiwarka

Podobne podstrony:
ALG6 Rozdział 7. Algorytmy przeszukiwania r > dzielenie modulo RmM: H(v) = v% Rmax Przykład: Dla
ALG 2 202 Rozdział 7. Algorytmy przeszukiwani! gdzie a jest współczynnikiem zapełnienia tablicy T. A
ALG 4 204 Rozdział 7. Algorytmy przeszukiwania i (gdzie a jest, tak jak poprzednio, współczynnikiem
ALG0 190 Rozdział 7. Algorytmy przeszukiwania Odnalezienie liczby .1 w tablicy tub jest sygnalizowa
ALG2 192 Rozdział 7. Algorytmy przeszukiwani; gdy maksymalna ilość elementów należących do pewnej d
ALG4 194 Rozdział 7. Algorytmy przeszukiwania •    powinna być tatwo obliczalna, tak
ALG8 198 Rozdział 7. Algorytmy przeszukiwania pod indeks ///, stwierdzimy, że już wcześniej ktoś si
ALG9 Rozdział 7Algorytmy przeszukiwania Pojęcie „przeszukiwania” pojawiało się w tej książce już ki
ALG&8 268 Rozdziału. Algorytmy numeryczne11.1.Poszukiwanie miejsc zerowych funkcji Jednym z częstych
ALG 0 270____Rozdziału. Algorytmy numeryczne F(x, y)=0. (funkcję w klasycznej postaci y=f(x) można ł
ALG 2 272 Rozdziału. Algorytmy numei 272 Rozdziału. Algorytmy numei (czyli F(z)) //zwraca wartość fu
ALG 4 274 Rozdział11. Algorytmy numeryczne (1,    7.00), // tablicy: wpisane sa dwie
ALG 6 276__Rozdziału. Algorytmy numeryczne double simpson_f(double i *f) (double),//wskaźnik do f(x)
ALG 8 278 Rozdziału, Algorytmy numeryczne Mając macierz w takiej postaci, można już pokusić się o wy
ALG 8 8.‘ 208 Rozdział 8. Przeszukiwanie tekstów Rys. H - 1. Algorytm typu
ALG!6 216 Rozdział 8. Przeszukiwanie tekslói8.2.2.Algorytm Boyera i Moore’a Kolejny algorytm, który
ALG 8 258 Rozdział 10. Elementy algorytmiki grafa 1 Rys. 10- 10. Przeszukiwanie grafu „ w głąb Listu
ALG&0 260 Rozdział 10. Elementy algorytmiki grafów przebadane podczas przeszukiwania. Dopiero potem

więcej podobnych podstron