Académique Documents
Professionnel Documents
Culture Documents
Wstp: Tablice rozproszone Numeryzacja klucza Rozmieszczanie pierwotne Usuwanie kolizji Reorganizacja tablicy
Rozmieszczanie algorytmiczne
- wyszukiwanie liniowe, binarne, - za mao efektywne (czasowo i pamiciowo); - tablica rozproszona, a rozmieszczanie w takiej strukturze rozmieszczanie algorytmiczne - zoono wyszukiwania O(c).
Rozmieszczanie algorytmiczne
Tablica rozproszona: - tablic rozproszon nazywamy system T=<K, D, h>, gdzie: K - zbir n kluczy, D - zbir p adresw, h: KD - funkcja odwzorowujca K w D (haszujca / mieszajca / kodujca / transformujca klucz w adres); - n /p wspczynnik wypenienia
3
Rozmieszczanie algorytmiczne
Rozmieszczanie algorytmiczne: - skada si z algorytmw: numeryzacji klucza, rozmieszczania pierwotnego (funkcja mieszajca) i rozwizywania konfliktw (usuwania kolizji); - problemy: wybr funkcji numeryzujcej i mieszajcej, wybr metody rozwizywania konfliktw; - zastosowania: bazy danych, budowa kompilatorw, rozwizywanie zada numerycznych zawierajcych macierze rzadkie, systemy plikw.
Numeryzacja klucza
Wstp: - algorytmy rozmieszczania pierwotnego i usuwania kolizji s czsto numeryczne, klucz natomiast jest czsto alfanumeryczny i na tyle dugi, e jego binarnej reprezentacji nie da si interpretowa numerycznie; trzeba go przetworzy na liczb z zachowaniem wraliwoci tego przetworzenia na kady bit wejcia; warunek ten spenia metoda skadania.
Numeryzacja klucza
Metody skadania:
- skadanie cykliczne z sumowaniem arytmetycznym:
potnij konwertowany cig bitw na odcinki o dugoci rwnej
- skadanie zygzakowe:
po podpisaniu odcinkw jeden pod drugim, odwr kolejno
bitw w co drugim z nich; sumuj lub stosuj XOR; koszt operacji moe da korzy w postaci bardziej rwnomiernego rozmieszczenia elementw.
5 6
10
11
12
Tablice rozproszone
Oglny algorytm wprowadzania zapisu rekordu do tablicy rozproszonej
0: k = numeryzuj (klucz); 1: i 0; 2: di h(k); {obliczanie adresu po..tu.} 3: if T[di] = 0 {dziaka pusta} then begin T[di] zapis (k); 'koniec algorytmu' end; else begin i i + 1; if i p then 'koniec algorytmu {wszystkie dziaki zajte} end; 4: di kolizja (i); {wyznaczenie nowego adresu} 5: go to 3;
szukania.
2. Wyszukiwanie okrelonego zapisu - sprowadza si do szukania. 3. Usuwanie okrelonego zapisu - sprowadza si do szukania i REORGANIZACJI tablicy. 4. Inne algorytmy przetwarzania tablic, np.: reorganizacja, zmiana rozmiaru tablicy, usuwanie rekordu (zaznaczanie, e usunity).
17
18
Tablice rozproszone
Oglny algorytm szukania zapisu rekordu w tablicy rozproszonej
0: k = numeryzuj (klucz); 1: i 0; 2: di h(k); 3: if KEY(di) = klucz KEY(d) funkcja odwrotna do numeryzuj, w sensie odszukania adresu then 'zakocz pomylnie'; 4: if KEY(di) = 0 - T[d] = 0 {dziaka T[d] pusta} zakadamy, e tablica nie jest... (?) then 'zakocz niepomylnie'; 5: i i+ 1; 6: di kolizja (i); {obliczenie nowego adresu} 7: go to 3;
19
20