---
# System prepended metadata

title: Algoritmen

---

# Algoritmen

## Algemene sorteer algoritmen

### Algemeen overzicht

![](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1*8CwawEIoG9VoineE0Rc0qw.png&f=1&nofb=1)  

![](https://iq.opengenus.org/content/images/2021/11/useit.png)
### Mergesort

Verdeel problemen in kleinere deelproblemen die wel makkelijk op te lossen zijn.  

![](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fstatic.wixstatic.com%2Fmedia%2Fe0d344_50c8e61253574135a69ed94f334526c4~mv2.png%2Fv1%2Ffill%2Fw_1000%2Ch_547%2Cal_c%2Cusm_0.66_1.00_0.01%2Fe0d344_50c8e61253574135a69ed94f334526c4~mv2.png&f=1&nofb=1)

**Eigenschappen**
* Stabiel 
* O(n log n)
* Gebruikt devide and conquer techniek

**nadeel**
* Hulptable nodig van O(n)
* Sorteert niet ter plaatse
* Je gebruikt beter insertion sort voor kleinere tabellen

### Quick sort

Maakt gebruik van partitionering (Methode van Hoare).

1. Kies een pivot
2. Zolang het element kleiner is dan de pivot blijven verder itereren
3. Als element groter of gelijk aan de pivot is verplaats het element 

![](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fmiro.medium.com%2Fmax%2F1280%2F1*aoXS7Bz8ZFEoQ-sq-UycsA.png&f=1&nofb=1)  

**Eigenschappen**
* Ter plaatste
* Niet stabiel
* Average case O(nlogn)

**Optimalisaties**
Recursie stoppen bij voldoende kleine deeltabel en sorteren met insertion sort

### Shellsort

Optimalisatie van insertion sort waarbij er wordt gezorgd dat elementen die `h` uit elkaar staan gesorteerd zijn.  


![](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F2%2F26%2FShellsort.svg%2F800px-Shellsort.svg.png&f=1&nofb=1)

**Eigenschappen**
* Niet stabiel
* Ter plaatste
* Tijdscomplexiteit hangt af van de incrementreeks(h)

### Heapsort

Opbouwen van heap als sorteermethode

**Eigenschappen**
* Ter plaatste
* Niet stabiel
* O(nlogn)

**Voordelen**
* Niet recursief
* Geen hulptabellen 

## Lineare sorteer methoden

Linear sorteren is in principe niet mogelijk, behalve als we meer weten over de input.

### Countsort

Vereist dat de sleutels gehele getallen zijn en dat ze tot een beperkt interval behoren