Datastructuren en algoritmen
Bij mergesort worden de twee gesorteerde reeksen 1, 4, 7, 9 en 2, 3, 8, 10 samengevoegd (merge) tot één reeks door herhaaldelijk de voorste elementen te vergelijken en het kleinste uit te voeren. Is één reeks leeg, dan wordt de rest van de andere zonder vergelijking uitgevoerd. Hoeveel vergelijkingen zijn er nodig?
- A4
- B7
- C8
Antwoord en toelichting tonen
Antwoord: B. 7
De vergelijkingen zijn 1 met 2, 4 met 2, 4 met 3, 4 met 8, 7 met 8, 9 met 8 en 9 met 10; op dat moment is de eerste reeks leeg, dus de resterende 10 wordt zonder vergelijking uitgevoerd. Dat zijn 7 vergelijkingen, het maximum m + n − 1 = 7 bij het samenvoegen van reeksen met lengte m en n. Een merge bekijkt elk element van de gesorteerde reeksen maar één keer en kost dus O(m + n); mergesort herhaalt dit over log₂ n niveaus, zodat het hele sorteerproces O(n log n) kost.