-
1. Data: 2017-02-02 19:29:28
Temat: Implementacja tablicy haszującej w pliku
Od: Borneq <b...@a...hidden.pl>
Normalnie gdy jest w pamięci, liczę hasz, potem numer bucket.
Czy capacity powinno być potęgą dwójki czy lepiej nie?
gdy jest potęgą to mogę zamiast liczyć mod, liczyć:
bucketIdx = hash & (Capacity-1);
potem mam
Bucket = record
hash
key
value
next -> Bucket
end;
hash, chyba niepotrzebne, potrzebne key, by sprawdzić czy to właściwa
wartość dla value.
Ale jest lista next->next->next->Bucket
Jak to będzie w pliku? Musiał by być wskaźnik na inne miejsce tablicy i
ruch głowicy a to miejsce będzie na końcu pliku? Jak działać gdy ilość
elementów zmieni się znacznie?
Plik miałby capacity+reszta rekordów?
-
2. Data: 2017-02-02 19:31:51
Temat: Re: Implementacja tablicy haszującej w pliku
Od: Borneq <b...@a...hidden.pl>
W dniu 02.02.2017 o 19:29, Borneq pisze:
> Plik miałby capacity+reszta rekordów?
jest jakaś metoda matematycznej statystyki oszacować ile będzie ta
reszta? Na przykład gdy capacity=ilość elementów, wtedy ile będzie
pustych i ile będzie w tym samym kubełku?
-
3. Data: 2017-02-03 09:46:06
Temat: Re: Implementacja tablicy haszującej w pliku
Od: Borneq <b...@a...hidden.pl>
W dniu 02.02.2017 o 19:29, Borneq pisze:
> Normalnie gdy jest w pamięci, liczę hasz, potem numer bucket.
tablica hash pozwala na lokalizację obiektu, ale nie na wyświetlenie ich
w kolejności, jak indeks będący tablicą posortowaną.
-
4. Data: 2017-02-04 16:33:24
Temat: Re: Implementacja tablicy haszującej w pliku
Od: "M.M." <m...@g...com>
On Friday, February 3, 2017 at 9:46:07 AM UTC+1, Borneq wrote:
> W dniu 02.02.2017 o 19:29, Borneq pisze:
> > Normalnie gdy jest w pamięci, liczę hasz, potem numer bucket.
>
> tablica hash pozwala na lokalizację obiektu, ale nie na wyświetlenie ich
> w kolejności, jak indeks będący tablicą posortowaną.
Tak, ale są wyjątki od tej reguły. Gdy np. chcesz w hashtable
przechowywać maksymalnie 100 unikalnych liczb z przedziału od 0 do
1000. Wtedy jako hash bierzesz po prostu wartość tej liczby i
możesz wyświetlić w kolejności - ale to szczególny przypadek.
Generalnie gdy przechowujesz małe liczby w hash-table, rzędu M*N,
gdzie N to rozmiar tablicy, możesz wyświetlić je posortowane w
M przebiegach tablicy lub w M przebiegach danych - zależy od typu
tablicy. Pewnie istnieją jeszcze inne szczególne przypadki które
umożliwiają wyświetlenie danych przechowywanych w hash-table w
kolejności sortowania.
Pozdrawiam