Wiskundige Stichtingen van Sorteren: Afgeleiden Verwachte Vergelijkingen en Wisselen in Quicksort
Quicksort is een veelgebruikt sorteeralgoritme dat bekend staat om zijn efficiëntie. Het begrijpen van de prestaties houdt in het analyseren van het verwachte aantal vergelijkingen en swaps tijdens de uitvoering. Dit artikel onderzoekt de wiskundige principes achter deze verwachtingen, met de nadruk op de probabilistische analyse van Quicksort.
Verwacht aantal vergelijkingen
Het verwachte aantal vergelijkingen in Quicksort hangt af van de keuze van draaipunt en het partitioneringsproces. Ervan uitgaande dat alle permutaties even waarschijnlijk zijn, kan het gemiddelde geval geanalyseerd worden met recursieve vergelijkingen. Voor een array van grootte n, voldoen de verwachte vergelijkingen, aangeduid als C(n), aan de herhaling:
C(n) = n - 1 + frac{1}{n} sum {k=0}^{n-1} [C(k) + C(n - 1 - k)]
Deze herhaling vereenvoudigt tot een bekend resultaat: C(n) ≈ 2nIn n voor grote n. De afleiding omvat het opsommen over alle mogelijke draaiposities en het toepassen van eigenschappen van harmonische getallen.
Verwacht aantal swaps
Swaps in Quicksort komen voor tijdens het partitioneringsproces. Het verwachte aantal swaps is gerelateerd aan het aantal vergelijkingen en de verdeling van de draaikeuzes. Bij uniforme randomness kunnen de verwachte swaps, aangeduid als S(n), benaderd worden door het analyseren van de partitioneringsstappen.
Elke partitiestap omvat het uitwisselen van elementen om een correcte plaatsing van de draaischijf te garanderen. De verwachte swaps per partitie zijn evenredig met de grootte van de subarrays. Het optellen van alle recursieve oproepen levert een benadering op: S(n) ≈ nIn n.
Samenvatting van de verwachtingen
- Vergelijkingen: Ongeveer 2n In n voor grote n.
- Swaps: Ongeveer nIn n voor grote n.
- Beide metrics groeien logaritmisch met arraygrootte, die de efficiëntie van Quicksort weerspiegelt.