Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaRéka Péterné Megváltozta több, mint 10 éve
1
Tökéletes Hash függvények keresése Kasler Lóránd-Péter
2
Bevezetés n Hash függvények (Index függvények) n Tökéletes Hash: u Statikus halmazhoz u Dinamikus halmazhoz
3
Probléma átfogalmazása (Java megközelítés) n Object alapú. int hashCode(); n Objektumokról -> Számokra térünk át. (Switch vagy Case problémája)
4
Statikus megoldás 1. SimpleHasher n A SUN Java JRE implementációjában lévő egyszerű és gyors megoldása. int h = x.hashCode(); h += ~(h << 9); h ^= (h >>> 14); h += (h << 4); h ^= (h >>> 10); return h; Megfelelő eredményeket ad, a gyakorlati alkalmazások 99%-ra
5
Statikus megoldás 2. SzerencseHasher n Backtracking a végtelenig. long h=Utils.getdefaultHashMapCode(o); return Math.abs(((a*h) % p)% s);
6
Statikus megoldás 3. SplineHasher n Spline 2 szinten: u 1. Függvény: számok -> sorszámok u 2. Függvény: ekvidisztáns pontok (min..max) -> ? getHashCode kérésre a 2. Függvénynek a behelyettesített értékét adjuk, de ezt csak interpolálva tudjuk, az első függvényből.
7
Dinamikus megoldás. K. módszer n kb. 10-11 jegyű számok n Fa struktúra: u Minden csúcsnak 10 leszármazottja van (0..9 indexekkel) u Gyökérnek, ha van valamilyen leszármazottja, akkor és csaks akkor ilétezik olyan szám, amely azzal a számjeggyel kezdődik. u A többi csúcs is hasonlóan épül fel (a k-dik melységeben a k+1-dik számjegy az index.). n Lényeges műveletek: u Elem hozzáadása: az elem számjegyein végigiterálva lehet lépkedni a fán, szükség esetén létrehozva a hiányzó csúcsokat u Elem törlése: a keresés hasonló, majd ha nincs leszármazottja ki lehet törölni (nincs implementálva jelenleg, mivel nem tartozott a feladathoz) n Teljes értékű struktúraként használható, mivel nem csak egy sorszámot lehet hozzárendelni egy csúcshoz, hanem már eleve az értéket is, így nincs szükség a szokásos tömbre.
8
Statisztikák
9
Keretrendszer n Hasher, HasherFactory interface- ek, a HasherManager és Utils osztályok
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.