ALG 1
7.3. Transformacja kluczowa 201
int pos=H(x.v); while (TTposl != WOLNE) po3 - (po3il) % Rmax;
T[pos]=x;
Załóżmy teraz, że poszukujemy elementu charakteryzującego się kluczem k. W takim przypadku funkcja szukaj mogłaby wyglądać następująco:
int pos=H(k);
while |(T[pos] != WOLNE) ss (T[pos].v != k)) pos = (pos+1) % Rmax;
return T[po3]; II zwraca znaleziony element
Różnica pomiędzy poszukiwaniem i wstawianiem jest w przypadku transformacji kluczowej doprawdy nieznaczna. Algorytmy są celowo zapisane w pseudokodzie, bowiem sensowny przykład korzystający z tej metody musiałby zawierać dokładne deklaracje typu danych, tablicy, funkcji H. wartości specjalnej WOLNE - analiza tego byłaby bardzo nużąca. Instrukcja pos = (pos+l) % Rmax zapewnia nam powrót do początku tablicy w momencie dotarcia do jej końca podczas (kolejnych) iteracji pętli while.
Dla ilustracji spójrzmy, jak poradzi sobie nowa metoda przy próbie sukcesywnego wstawienia do tablicy Trekordowi, B. C. D. E, F. G i //którym funkcja El przydzieliła adresy (indeksy): 1. 3. 2. 5. 5. 1.7 i 7. Ustalmy ponadto rozmiar tablicy T na 8 - wyłącznie w ramach przykładu, bowiem w praktyce taka wartość nie miałaby zbytniego sensu. Efekt jest przedstawiony na rysunku 7-3:
Rys. 7-3.
Obsługa konjhk-I lów dostępu przez próbkowanie liniowe.
Dość ciekawymi jawią się teoretyczne wyliczenia średniej ilości prób potrzebnej do odnalezienia danej x. W przypadku poszukiwania zakończonego sukcesem średnia liczba prób wynosi około:
Wyszukiwarka
Podobne podstrony:
ALG 3 7.3. Transformacja kluczowa 203 oznaczonego symbolicznie jako START. Proces poszukiwania zakońALG 5 7.3. Transformacja kluczowa 205 liczba jest z dużym prawdopodobieństwem przewidywalna. Nic możALG3 7.3. Transformacja kluczowa 193 Naturalną konsekwencją nowego sposobu zapamiętywania danych jeALG5 7,3. Transformacja kluczowa 195 tylko, aby jako wynik otrzymać pewną liczbę, którą można późniALG7 7.3. Transformacja kluczowa 197 Istnieją dwie wartości parametru 67, które „rozrzucają” kluczeALG9 7.3. Transformacja kluczowa 199 Co jest niepokojące w zaproponowanej powyżej metodzie? ZaprezeEgzamin z programowania 1 Imię i nazwisko:_ Zad. 1. Dopasuj fragment kodu do rysunku c) int x = 5; dRealizacja — iteracji while:Realizacja — iteracji for int strlen( char s[] ){ int len = 0; while( s[FILTR NOI w procesorze TMS320C67134 //zmienne globalne intl6 BUF[8); //tymczasowy bufor int pos; //zALG 0 250 RozdziaMO. Elementy algorytmiki gratów ( z-O; while(l) // pętla nieskończona I if(z==n)skanuj0001 Imię i nazwisko:_ Zad. % Dopasuj fragment kodu do rysunku c) int x = 5; do {x+=3;}&nALG!8 218 Rozdział 8. Przeszukiwanie tekstów for(i—M 1,j —M-l; j>0; i — , j—) while(t[i]!=włj)) (IMG201 201 Rys. 16.2. Schemat obwodu do pomiaru biagu Jałowego transformatora Tabela 16.1 obliczyć cimg201 201 Rys. 1.78. Widmo gęstości mocy sygnału nieciągłego kluczowania częstotliwości FSK dla róż225 Transfer Reaction of (//d) + He”, Int. Conf. on Muon Catalyzed Fusion, Wien, May (1990). 25więcej podobnych podstron