Haszowanie - Usuwanie konfliktów

0

Generalnie chodzi o haszowanie i o usuwanie konfliktów, więcej w załącznikach. Zadanie 1 zrobiłem.

0

Ty tak poważnie? Nawet nie chce ci się przepisać treści? Gdyby nie to że przynajmniej postarałeś się z tytułem wątku i tagami to byłby od razu kosz...
Z czym dokładnie masz problem?

0

Tak jak w zadaniu 2. "Wykorzystując metodę tablicową rozmieścić elementy ciągu z zadania 1 w tablicy o rozmiarze 17(rozmiar strefy podstawowej ). Jako funkcję haszującą wykorzystać h(V) z zadania 1."
Chodzi mi o to, żeby ktoś pomógł podając ogólny zamysł metody tablicowej i podał jakiś przykład tego(opcjonalnie na przykładzie z moich zadań), żebym mógł ruszyć to zadanie.

0

o_O co to w ogóle za pytanie? Robisz sobie tablicę 17 list (jedno, dwukierunkowych, jakich chcesz). Dodanie do tablicy to jest po prostu
tablica[hash(wartość)].add(wartość)

0

Jak możesz, przeżuć to do Newbie, może wtedy nie będziesz się dziwił, że tego nie rozumiem. Zresztą drugie już zrobiłem, zostało mi:
"Zaimplementować metodę obsługi konfliktów opartą o próbkowanie liniowe i wykorzystać ją do rozmieszczenia elementów ciągu z zadania 1. w tablicy o rozmiarze 17 za pomocą h(v) z zadania 1. najlepiej było by w c. Kompletnie nie wiem jak to ruszyć, a bez tego będzie lipa :(

0

Myślę że pomyliłeś studia. Poważnie. Marnujesz czas. Nie warto.
Wiesz jak działa liniowe rozwiązywanie konfliktów w hashowaniu opartym o adresowanie otwarte? Chodzi o to żebyś napisał nową funkcje konflikt(hash(k),x).
Adresowanie otwarte polega na tym że masz tablicę na 17 elementów i nic wiecej. Liczysz sobie hash(k) i jesli miejsce w tablicy jest wolne to wpisujesz wartość. Jeśli nie jest wolne to uruchamiasz funkcję konflikt(hash(k),x) która za pomocą pewnej funkcji liniowej zwraca ci nowy hash. Znów sprawdzasz czy jest wolny, jeśli jest to wpisujesz dane, jeśli nie jest to powtarzasz do skutku. Dla trywialnego przykładu załóżmy że x to kolejne liczby całkowite, tzn 1,2,3,...,m gdzie m=17 w naszym przykładzie.

Załóżmy że użyjemy funkcji liniowej konflikt(h,x) = (h+x)%17

Wkładamy do tablicy liczbę 4 ale miejsce w tablicy jest zajęte. Konflikt(1,4) zwraca nam 5, ale też zajęte. Konflikt(2,4) zwraca nam 6, jest wolne więc zapisujemy wartość.

0

Nie przyszedłem tu po porady odnośnie życia. Za wyjaśnienie dzięki, przyda się :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1