Binair en hexadecimaal rekenen, en de grootte van beeld en geluid berekenen
Informatica · havo 4
Bewaar deze samenvatting
Een algoritme is een stap-voor-stapaanpak die een probleem oplost. Zoeken en sorteren zijn de twee klassiekers: elke telefoon, webwinkel en database doet het de hele dag. Na deze samenvatting voer je zoek- en sorteeralgoritmen met de hand uit en weet je wanneer je welk algoritme kiest.
Een algoritme moet eindig zijn (het stopt), eenduidig (elke stap is precies bepaald) en correct (het geeft het goede resultaat). Je beschrijft het in stappen, in pseudocode of in een programmeertaal, en je test het door het met de hand door te lopen.
Bij lineair zoeken loop je de lijst van voor naar achter af en vergelijk je elk element met het gezochte. Je stopt zodra je het vindt. Het werkt op elke lijst, ook een ongesorteerde.
Moet het element er niet in zitten of staat het helemaal achteraan, dan vergelijk je alle elementen. Bij een lijst van 1000 elementen zijn dat in het slechtste geval 1000 vergelijkingen.
Binair zoeken werkt alleen op een gesorteerde lijst, maar is veel sneller. Je kijkt naar het middelste element:
| stap | begin | einde | midden (index) | waarde | conclusie |
|---|---|---|---|---|---|
| 1 | 0 | 7 | 3 | 12 | 23 is groter, zoek rechts |
| 2 | 4 | 7 | 5 | 23 | gevonden |
In slechts 2 vergelijkingen is het element gevonden. Elke stap halveert het zoekgebied.
Bij bubble sort vergelijk je steeds twee naast elkaar liggende elementen en wissel je ze als ze in de verkeerde volgorde staan. Na elke ronde zit het grootste element van het nog ongesorteerde deel op zijn plaats achteraan, als een bel die opstijgt. Je herhaalt tot er in een hele ronde niets meer is gewisseld.
Bij selection sort zoek je in het ongesorteerde deel het kleinste element en wissel je dat met het eerste element van dat deel. Dan schuif je de grens één plaats op.
Voor lijsten van elementen:
| algoritme | aantal vergelijkingen (slechtste geval) |
|---|---|
| lineair zoeken | ongeveer |
| binair zoeken | ongeveer |
| bubble sort | ongeveer |
| selection sort | ongeveer |
Bij 1000 elementen heeft lineair zoeken maximaal 1000 stappen nodig, binair zoeken maar zo'n 10, want . Voor sorteren zijn er veel snellere methoden (zoals quicksort en mergesort), die de lijst telkens in delen splitsen. Bubble sort en selection sort zijn vooral leerzaam en prima voor kleine lijsten.
Staat hier iets dat niet klopt of niet hoort? .