# 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