ALG2

ALG2



192 Rozdział 7. Algorytmy przeszukiwani;

gdy maksymalna ilość elementów należących do pewnej dziedziny1 5Rjest z góry znana (Einax), natomiast wszystkich możliwych (różnych) elementów tej dziedziny mogłoby być potencjalnie bardzo dużo (O- Tak dużo, że o ile przydział pamięci na tablicę o rozmiarze Emax jest w praktyce możliwy, o tyle przydział tablicy dla wszystkich potencjalnych C elementów dziedziny 9? byłby fizycznie niewykonalny2.

Ponieważ poprzednie zdanie brzmi makabrycznie, być może warto jest podać ilustrujący je przykład:

•    chcemy zapamiętać Rimx = 250 słów o rozmiarze 10 (tablica o rozmiarze 250*11=2750 bajtów jest w pełni akceptowalna3;

•    wszystkich możliwych słów jest C = 26l0(nie licząc w ogóle polskich znaków!). Praktycznie niemożliwe jest przydzielenie pamięci na tablicę, która mogłaby je wszystkie pomieścić...

Idea transformacji kluczowej polega na próbie odnalezienia takiej funkcji H, która otrzymując w parametrze pewien zbiór danych, podałaby nam indeks w tablicy T, gdzie owe dane znajdowałyby się... gdyby je tam wcześniej zapamiętano!

Inaczej rzecz ujmując: transformacja kluczowa polega na odwzorowaniu: dane ł-» adres komórki w pamięci.

Zakładając taką organizację danych, położenie nowego rekordu w pamięci teoretycznie nie powinno zależeć od położenia rekordów już wcześniej zapamiętanych. Jak zapewne pamiętamy z rozdziału 5, nie był to przypadek list posortowanych, drzew binarnych, steny...

1

' „Dziedziny” w sensie matematycznym.

2

   A nawet jeśli tak, to zdrowy rozsądek zatrzymałby nas przed jego realizacją!

3

   Jeden dodatkowy bajt na znak *\0' kończący ciąg tekstowy w C++.


Wyszukiwarka

Podobne podstrony:
ALG0 190 Rozdział 7. Algorytmy przeszukiwania Odnalezienie liczby .1 w tablicy tub jest sygnalizowa
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
ALG2 32 Rozdział 2. Rekurencja Wyżej podaliśmy warunki pozytywnego zakończenie programu. W przypadk
ALG2 52 Rozdział 3. Analiza sprawności algorytmów Rys. 3 -
ALG2 72 Rozdział 3. Analiza sprawności algorytmówn o) = i, i = A + O, A =    1. Po t
ALG6 Rozdział 7. Algorytmy przeszukiwania r > dzielenie modulo RmM: H(v) = v% Rmax Przykład: Dla
ALG 0 200 Rozdział 7. Algorytmy przeszukiwania Rekordy E i F zostały zapamiętane w momencie stwierdz
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
ET2 192 Rozdział 11. Turystyka międzynarodowa System rachunków narodowych nie zaspokaja zatem wszys
ALG2 22 Rozdział 1. Zanim wystartujemy programowania nic znikły bynajmniej z horyzontu: Dijkstra, H
ALG2 42 Rozdział 2. Rekurencja 2. m.in. wartości zmiennych tego poziomu (tzw. kontekst). Co więcej,
ALG2 52 Rozdział 2. RekurenZad. 2-4Oto jedno z możliwych rozwiązań: trójkąty ,cpp double y) void nu
ALG6 86 Rozdział 4. Algorytmy sortowania zamiany sąsiadujących ze sobą elementów, a druga będzie wy
ALG8 88 Rozdział 4. Algorytmy sortowania Jest chyba dość oczywiste, że wywołania rekurencyjne zatrz
ALG 0 90 Rozdział 4. Algorytmy sortowania 90 Rozdział 4. Algorytmy sortowania Rys. 4 - 8. Sortowanie
ALG2 102___Rozdział 5. Struktury danych I ELEMENT *q=inf.głowa; if (pusta()) cout << "(l

więcej podobnych podstron