## Sorteren

In het spreadsheet-voorbeeld hebben we ook een demonstratie van het sorteren van een reeks getallen.
Dit sorteren werkt als volgt:

- in de ene stap vergelijken we de waarden (1,2), (3,4), enz.; we verwisselen (“swap”) deze waarden eventueel zodat deze voor elk paar in de goede volgorde staan.
- in de volgende stap vergelijken we de waarden (2,3), (4,5), enz.; ook deze zetten we per paar in de goede volgorde;
- deze stappen herhalen we N keer, voor een reeks van N waarden.

In spreadsheet-formaat wordt dit:

| A | B | C | D
--- | --- | --- | --- | ---
1 | 13 | 11 | 5 | 9
2 | =IF(A1<=B1,A1,B1) | =IF(A1<=B1,B1,A1) | =IF(C1<=D1,C1,D1) | =IF(C1<=D1,D1,C1)
3 | =A1 | =IF(B2<=C2,B2,C2) | =IF(B2<=C2,C2,B2) | =D1
4 | =IF(A3<=B3,A3,B3) | =IF(A3<=B3,B3,A3) | =IF(C3<=D3,C3,D3) | =IF(C3<=D3,D3,C3)
... | ... | ... | ... | ...

De spreadsheet voor zoeken bevat ook het sorteervoorbeeld.
Links en verdieping
Binair zoeken komt in heel veel situaties van pas: je moet het algoritme dan zelf aanpassen aan de situatie.
Een voorwaarde is dat je zoekt voor een willekeurige waarde x kunt bepalen of de gezochten waarde “links” of “rechts”, “voor” of “achter” deze waarde x te vinden is.
Zoals gezegd is sorteren belangrijk omdat dit efficiënt zoeken mogelijk maakt. Maar het is dan ook nodig dat je efficiënt kunt sorteren.
Er zijn veel efficiëntere sorteeralgoritmes dan die gebruikt in het spreadsheet-voorbeeld, onder andere quicksort (Wikipedia: quicksort) en mergesort (Wikipedia: mergesort).
In de praktijk gebruik je voor sorteren meestal een bibliotheekfunctie: dan hoef je quicksort of mergesort niet zelf uit te programmeren.
In de keuzemodule Objectgeoriënteerd programmeren wordt hier dieper op ingegaan.