Zoek- en sorteeralgoritmen & Hashing

Slides:



Advertisements
Verwante presentaties
Differentie vergelijkingen differentie vergelijkingen
Advertisements

Les 4 cursus WordPress. Wat gaan we doen (1) 1. Importeren via Word problemen 2. Alle pagina’s en berichten verwijderen, incl prullenbak leegmaken 3.
Informatica klas 4 Hoofdstuk 1
Algoritmen en Datastructuren (ALDAT)
Algoritmische problemen Onbeslisbaar / niet-berekenbaar Geen algoritme mogelijk Tegel- of domino-problemen Woordcorrespondentie-probleem Syntactisch equivalentie.
Datastructuren Quicksort
Bits en Bytes
Wouter van der Zwan Lezing Draaitabellen Wouter van der Zwan
Samenvatting Hoofdstuk 3 (§2 Vlakken)
Startzondag 09 september 2012 Is er meer? Er is meer! 1Korintiërs12:4-11 Er zijn in de gemeente van Christus verschillende gaven, maar er is één Geest,
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
Hashing Inhoud Hashing Hashtable Hash function Collision Toepassing van klassieke ADT’s, algoritmes en runtime overwegingen.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
De beste manier om woorden aan te pakken…
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
Digitale informatie analoog signaal  digitaal signaal (zie figuur):
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Heapsort College 4. 2 Vandaag  Kort: ADT vs Datastructuur  Heaps en Heapsort  Tijd over: ondergrenzen voor sorteren; nog sneller sorteren.
Datastructuren en Algoritmen
Datastructuren en Algoritmen Datastructuren college 1.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Wiskunde in Softwareontwikkeling Gert Jan Sterrenburg –
Het binaire talstelsel
Oefeningen Datacommunicatie Les 2: Lineaire blokcodes
Datastructuren Sorteren: bubble, merge, quick
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Datastructuren Sorteren, zoeken en tijdsanalyse
Talstelsels Betekenis van cijfers in verschillende stelsels
Oefeningen Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.
Datastructuren Sorteren, zoeken en tijdsanalyse
Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen van.
Sorteeralgoritmen. Sorteren: aanpak 1 Hoe ga je een rij getallen sorteren met PC? Sorteren door selectie (= selection sort): Zoek de kleinste waarde Sorteer.
06/032003Tom Van Damme Sorteren van lijsten Selection Sort.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
5 Public-key cryptografie (Asymetrische cryptosystemen)
Hoofdstuk 5 – Verzameling en functie
BINAIR2: 10-jan-2003, RW Maar HOE reken je nu een BINAIRE waarde om naar een DECIMALE waarde?
Informatica: Binair rekenen.
Maar HOE kan je nu twee BINAIRE getallen optellen?
Netwerken (2) Informatica.
Co-Green Dit is een sheet met tekst. Dit is de kop. Dit is bullit 1. Deze bullits kunnen over de gehele lengte van de sheet doorlopen Dit is bullit.
Zin en onzin over bits en bytes
Een bestaande presentatie gebruiken
Bits & bytes.
Een bestaande presentatie gebruiken Computerwijs.
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
1 Datastructuren Quicksort College 3. 2 Vorige keren  O-notaties  Sorteren: insertion sort, bubble sort  Kosten (n 2 ) tijd in het slechtste geval.
Instructie Programmeren Task 3 5JJ70. Task 3.1: MIPS Rating Volg de beschrijving in de opdracht om het aantal assembly instructies in de loop uit te vinden.
Instructie Programmeren Task 7
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen (vorige keer) Hashtabellen –Oplossen van botsingen met “ketens” (chaining) Vorige.
1 Datastructuren Sorteren, zoeken en tijdsanalyse College 2.
1 Datastructuren Analyse van algorithmen (vervolg) Heapsort College 4.
?.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
Gecijferdheid Les 2.1 Talstelsels.
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
GUI & classes Een Gui in een class steken en het object gebruiken.
H01: Informatie Digitaal Toetsweek1 : VT41, 50 min.
Informatica-Actief Thema: Informatie en communicatie Hoofdstuk:
Samenvatting Hoofdstuk 3 (§2 Vlakken)
Wat weten we over atomen?
Zeeslag Bron: csunplugged.org / csunplugged.nl.
Bewerkingen met matrices - Deel 3
Implementatie Zoekboom
Omzetting van kleur naar zwart wit
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Quantumcomputers en quantumcommunicatie
Voorkennis Wiskunde Les 4 Hoofdstuk 1: §1.1 t/m 1.3.
Transcript van de presentatie:

Zoek- en sorteeralgoritmen & Hashing Merel van Schieveen en Femke Berendsen

Inhoud Zoek- en sorteeralgoritmen Hashfuncties Wat zijn hashfuncties? Eigenschappen MD5 Verjaardagsprobleem

Zoekalgoritmen Lineair zoeken Binair zoeken Data niet gesorteerd Alle data langslopen O(n) Binair zoeken Data gesorteerd Zoekruimte halveren O(log n)

Sorteeralgoritmen Insertion sort Merge sort Ieder element afzonderlijk in rij plaatsen O(n²) Merge sort Halveren van rijtjes en deze later weer samenvoegen O(n log n)

Hashing

Herbruikbaar

Onomkeerbaar Caesar-rotatie

Lengte

Geen Collisions

Voorwaarden Hash functie Herbruikbaar; als x = y, dan H(x) = H(y) Onomkeerbaar; Alle hashes dezelfde lengte; Geen collisions; als H(x) = H(y), dan x = y

MD5 (128 bit) hexadecimaal talstelsel

MD5 (128 bit) van hexadecimaal naar binair talstelsel

MD5 (128 bit) MD5 heeft dus een output van: 128 𝑏𝑖𝑡 4 =32 tekens uit het hexadecimaal stelsel

Collisions?

Het verjaardagsprobleem Een groep mensen, hoe groot is de kans dat twee mensen op dezelfde dag jarig zijn? P(n,k)=P(minstens één duplicaat per k items, die elk een gehele waarde tussen 1 en n kunnen aannemen) Q(n,k) = P(geen duplicaten) = 1 – P(n,k) N = het aantal verschillende manieren dat we k waarden kunnen hebben zonder duplicaten

Het verjaardagsprobleem We willen k zodat P(365,k) > 0,5 Hierbij is k ≤ 365 N = 365 x 364 x ... x (365 – k + 1) = 365! 365−𝑘 ! Q(365,k) = N / 365k

Het verjaardagsprobleem Q(365,k) = 365! 365−𝑘 ! 365 𝑘 P(365,k) = 1 – Q(365,k) = 1 – 365! 365−𝑘 ! 365 𝑘 Als k = 23 dan is P(365,23) = 0,5073.

Algemener probleem P(n,k) = 1 – 𝑛! 𝑛−𝑘 ! 𝑛 𝑘 > 1 – 𝑒 −𝑘(𝑘−1)/2𝑛 Als P(n,k) > 0,5 dan moet k≈ 𝑛 Bij het verjaardagsprobleem: n = 365 geeft 𝑘=1,18 365 ≈22,54

Collision Geval MD5 𝑛= 2 128 𝑘= 2 128 = 2 64 =18.446.744.073.709.551.616 In 1994: Oorschot en Wiener In 24 dagen een collision gevonden

Vragen?