Datastructuren en algoritmen

In welk typisch geval heeft quicksort tijdcomplexiteit O(n²)?

  1. ADe gegevens staan in willekeurige volgorde en de pivot (spilwaarde) wordt willekeurig gekozen
  2. BHet aantal gegevens is een macht van twee
  3. CDe gegevens zijn al gesorteerd en het eerste element wordt altijd als pivot gebruikt
Antwoord en toelichting tonen

Antwoord: C. De gegevens zijn al gesorteerd en het eerste element wordt altijd als pivot gebruikt

Quicksort verdeelt de elementen in elementen die kleiner en elementen die groter zijn dan de pivot, en verdeelt elk deel daarna opnieuw. Zijn de gegevens al gesorteerd en is het eerste element altijd de pivot, dan is de pivot elke keer het minimum en is elke verdeling scheef, met nul elementen aan de ene kant en alle overige aan de andere. Er zijn dan n(n−1)/2 vergelijkingen nodig (4950 voor n = 100). Wordt de pivot willekeurig gekozen of als de mediaan van drie waarden, dan wordt een lange reeks scheve verdelingen uiterst onwaarschijnlijk. Het aantal gegevens speelt voor de tijdcomplexiteit geen rol.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Datastructuren en algoritmen

  1. 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?
  2. Een binaire heap wordt opgeslagen in een array a[0], a[1], a[2], … met de wortel in a[0], waarbij elk niveau van bovenaf van links naar rechts wordt gevuld. Wat zijn de kinderen en de ouder van a[4]?
  3. Een max-heap, waarin de waarde van elke ouder minstens zo groot is als die van zijn kinderen, wordt opgeslagen in een array met de wortel in a[0]. Aan de heap 50, 30, 40, 10, 20, 35 wordt 45 toegevoegd door de waarde achteraan te plaatsen en haar met haar ouder te verwisselen zolang ze groter is dan die ouder. Hoe ziet de array er daarna uit?
  4. Een binaire zoekboom wordt in in-order doorlopen (symmetrische volgorde: eerst de linkerdeelboom, dan de knoop zelf, dan de rechterdeelboom). In welke volgorde staan de waarden van de bezochte knopen? Neem aan dat alle waarden verschillend zijn.
  5. De waarden 50, 30, 70, 20, 40, 60, 80 worden in deze volgorde ingevoegd in een lege binaire zoekboom. In welke volgorde worden de knopen bezocht als de boom in post-order wordt doorlopen (eerst de linkerdeelboom, dan de rechterdeelboom, dan de knoop zelf)?