De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hashing Inhoud Hashing Hashtable Hash function Collision Toepassing van klassieke ADT’s, algoritmes en runtime overwegingen.

Verwante presentaties


Presentatie over: "Hashing Inhoud Hashing Hashtable Hash function Collision Toepassing van klassieke ADT’s, algoritmes en runtime overwegingen."— Transcript van de presentatie:

1 Hashing Inhoud Hashing Hashtable Hash function Collision Toepassing van klassieke ADT’s, algoritmes en runtime overwegingen.

2 Hashing Hashing is een methode om een sleutelwaarde van een object af te beelden op de positie in een tabel. Dit leidt tot een flitsend snelle methode om objecten op te slaan en op te zoeken.

3 Hashtable Een hashtable is bijv. een array. De objecten bevinden zich verspreid in het array. Hashing is alleen snel indien slechts een gedeelte van het array wordt gebruikt. Vuistregel niet meer dan 50%. (boek 10 %)

4 Hash function Hash function berekent voor een object de index van het array-element. Probleem: aantal mogelijke sleutelwaarden groter dan het aantal array-elementen.

5 Hash function Type hash functions: Mapping Bijv. sleutel f( ) = 678 Folding Bijv. f( ) = Shifting Bijv. f( ) = 123 * *

6 Hash function Vrijwel altijd wordt de modulo-operatie toegepast. Voorbeeld: array bevat 1000 locaties. index = berekendeWaarde % 1000.

7 Hash function Gewenste eigenschap: veel voorkomende waarden met grote overeenkomsten worden op verschillende indices afgebeeld. Voorbeelden: Jansen, Janssen, Janse

8 Collision Indien twee verschillende sleutelwaarden worden afgebeeld op één index dan is er sprake van collision. Oplossingen: Hashing using buckets / chaining Lineair probing

9 Open hashing / Closed hashing Open addressing is het vinden van een open/niet gebruikte lokatie in de hashtable. Open hashing: De hashtable bevat de objecten.

10 Open hashing en Buckets/Chaining/Closed hashing

11 Lineair probing Leidt tot clustering. Alternatief: rehashing

12 Hashing using buckets Het boek vermeldt dat een bucket een onbeperkte capaciteit heeft. Gebruikelijk is een beperkte capaciteit. De overloop bucket heeft onbeperkte capaciteit.

13 Toepassing 4.4 Aantal array elementen bevat enkele tien- duizenden elementen. m is 5 á 10.

14 Toepassing Oplossingen: 3 geneste for-statements runtime : enkele dagen Sorteer x1x1 x2x2 …xmxm x2x2 x3x3 …x m+1 …………. x n-m ……x n -1 x n –(m-1) …x n-1 xnxn

15 Toepassing Maak gebruik van hashing: Aan elke string van m karakters wordt een hashwaarde toegekend. Bij een collison wordt onderzocht of strings identiek zijn. Runtime minder dan een dag.


Download ppt "Hashing Inhoud Hashing Hashtable Hash function Collision Toepassing van klassieke ADT’s, algoritmes en runtime overwegingen."

Verwante presentaties


Ads door Google