Het MergeSort algoritme sorteert een lijst door de lijst op te splitsen in twee helften, deze helften recursief te sorteren, en dan de twee gesorteerde helften samen te voegen (te ‘mergen’) tot de uiteindelijke gesorteerde lijst.

Opgave

Schrijf een klasse MySorter die de interface Sorter1 implementeert. Deze interface bevat een enkele methode void sort(List<Integer> list). Deze methode krijgt een lijst als parameter en sorteert die lijst intern. De methode moet dus geen nieuwe lijst aanmaken, en enkel elementen in de lijst omwisselen. De sorteren moet met Mergesort gebeuren.

Voorbeelden

>>> Sorter solution = new MySorter();
>>> List<Integer> list = Arrays.asList(1,5,2,3,6,4,5,2,1,5,2,3);
>>> solution.sort(list);
solution = [1,1,2,2,2,3,3,4,5,5,5,6]

Referenties