Partisjonsfunksjonen er en funksjon som tar inn en matrise a [l… u] som input. Her, l er undergrensen, og u er den øvre grensen av matrisen. Algoritmen finner en indeks q slik at alle elementer mindre enn et [q] faller i subarray a [l… Q-1], og alle elementer som er større enn et [q] -fall i subarray a [q+1… u]. Partisjonsfunksjonen oppnår dette ved å bruke et pivotelement og to pekere - Pointer I og Pointer J til matrisen.
Peker J peker på det første elementet i matrisen, og pekeren I blir initialisert som J-1. Funksjonen itererer gjennom matrisen ved hjelp av peker j. For element A [j] kan elementet være større enn pivotelementet eller mindre enn pivotelementet. Hvis elementet er større enn svingelementet, blir pekeren J økt, og peker på neste element. Hvis elementet A [j] er mindre enn pivotelementet, øker vi pekeren I, bytter en [i] og a [j]. Byttingen av elementene hjelper til med å opprettholde pekeren I slik at elementene opp til elementet peker med pekeren I er mindre enn pivotelementet. Som et siste trinn bytter partisjonsfunksjonen pivotelementet med elementet ved indeks I+1, og flytter dermed pivotelementet i riktig posisjon i den partisjonerte matrisen.
Kildekode
Def Partition (arr, LB, UB):Best-case tidskompleksiteten til Quicksort er O (n log n). I best case-scenariet, i hver samtale til algoritmen, deler algoritmen problemet i to delproblemer av samme størrelse. Den verste tidskompleksiteten til Quicksort -algoritmen er O (N^2). Dette skjer når partisjonselementet alltid er valgt som det siste elementet, og matrisen er allerede sortert.