ALG6
Rozdział 7. Algorytmy przeszukiwania
r > dzielenie modulo RmM: H(v) = v% Rmax
Przykład:
Dla ^, = 37 H(,,KOT")=(01011 01110 10100), % (37) ,0 = (11732),0=3.
Zalety:
• funkcja H łatwa do obliczenia.
Wady:
• otrzymana wartość zależy dość paradoksalnie - bardziej od Rmas niż od klucza!
Przykładowo gdy Rmax jest parzyste, na pewno wszystkie otrzymane indeksy danych o kluczach parzystych będą również parzyste, ponadto dla pewnych dzielników wiele danych otrzyma ten sam indeks... Można temu częściowo zaradzić poprzez wybór Rimx jako liczby pierwszej, ale tu znowu będziemy mieli do czynienia z akumulacją elementów w pewnym obszarze tablicy - a wcześniej wyraźnie zażyczyliśmy sobie, aby funkcja H rozdzielała indeksy „sprawiedliwie'" po całej tablicy!
• w przypadku dużych liczb binarnych nie mieszczących się w reprezentacji wewnętrznej komputera, obliczenie modulo już nie jest możliwe przez zwykłe dzielenie arytmetyczne.
Co się tyczy ostatniej wady, to prostym rozwiązaniem dla ciągów tekstowych w C++ („wewnętrznie” są to przecież zwykłe ciągi bajtów!) jest następująca funkcja, bazująca na interpretacji tekstu jako szeregu cyfr ^-bitowych:
int H(char *s, int Rmax)
(
for (int lmp=0; *s!=NULL; s++)
Łmp=(64*tmp+(*s))% Rmax; return tmp;
)
H(y) = [(((v*£)%0*ffma-y)] gdzie 0<0
Powyższą formułę należy odczytywać następująco: klucz v jest mnożony przez pewną liczbę 6 z przedziału otwartego (OJ). Z wyniku bierzemy część ułam kową. mnożymy przez Emm i ze wszystkiego liczymy część całkowitą.
Wyszukiwarka
Podobne podstrony:
ALG 0 200 Rozdział 7. Algorytmy przeszukiwania Rekordy E i F zostały zapamiętane w momencie stwierdzALG 2 202 Rozdział 7. Algorytmy przeszukiwani! gdzie a jest współczynnikiem zapełnienia tablicy T. AALG 4 204 Rozdział 7. Algorytmy przeszukiwania i (gdzie a jest, tak jak poprzednio, współczynnikiemALG0 190 Rozdział 7. Algorytmy przeszukiwania Odnalezienie liczby .1 w tablicy tub jest sygnalizowaALG2 192 Rozdział 7. Algorytmy przeszukiwani; gdy maksymalna ilość elementów należących do pewnej dALG4 194 Rozdział 7. Algorytmy przeszukiwania • powinna być tatwo obliczalna, takALG8 198 Rozdział 7. Algorytmy przeszukiwania pod indeks ///, stwierdzimy, że już wcześniej ktoś siALG9 Rozdział 7Algorytmy przeszukiwania Pojęcie „przeszukiwania” pojawiało się w tej książce już kiALG&8 268 Rozdziału. Algorytmy numeryczne11.1.Poszukiwanie miejsc zerowych funkcji Jednym z częstychALG 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ść fuALG 4 274 Rozdział11. Algorytmy numeryczne (1, 7.00), // tablicy: wpisane sa dwieALG 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 wyALG6 56 Rozdział 3. Analiza sprawności algorytmów jest intuicyjnie bardzo proste, dalej będziemy użALG6 66 Rozdział 3. Analiza sprawności algorytmów return pos; else //element zostALG6 76 Rozdział 3. Analiza sprawności algorytmów Analogicznie dla 2 otrzymamy: Vn > 1, A(n,2) =ALG6 86 Rozdział 4. Algorytmy sortowania zamiany sąsiadujących ze sobą elementów, a druga będzie wywięcej podobnych podstron