Datastruktur och algoritmer – Snabbsortering

Annonser

Snabbsortering är en mycket effektiv sorteringsalgoritm och är baserad på partitionering av matris med data i mindre matriser. En stor matris är uppdelad i två matriser, varav en innehåller värden som är mindre än det angivna värdet, säg pivot, baserat på vilken partitionen är gjord och en annan matris innehåller värden som är större än pivotvärdet. array och anropar sig sedan rekursivt två gånger för att sortera de två resulterande underarrayerna. Denna algoritm är ganska effektiv för stora datamängder eftersom dess genomsnittliga och värsta fall-komplexitet är O (n2), respektive.

Partition i snabb sortering

Följande animerade representation förklarar hur för att hitta pivotvärdet i en matris.

Pivotvärdet delar listan i två delar. Och rekursivt hittar vi pivoten för varje underlista tills alla listor bara innehåller ett element.

Snabbsortering Pivotalgoritm

Baserat på vår förståelse för partitionering i snabb sortering kommer vi att försök nu skriva en algoritm för den, som är som följer.

Step 1 − Choose the highest index value has pivotStep 2 − Take two variables to point left and right of the list excluding pivotStep 3 − left points to the low indexStep 4 − right points to the highStep 5 − while value at left is less than pivot move rightStep 6 − while value at right is greater than pivot move leftStep 7 − if both step 5 and step 6 does not match swap left and rightStep 8 − if left ≥ right, the point where they met is new pivot

Snabbsortering Pivot Pseudokod

Pseudokoden för ovanstående algoritm kan härledas som –

Snabbsorteringsalgoritm

Med hjälp av pivotalgoritmen rekursivt får vi mindre möjliga partitioner. Varje partition bearbetas sedan för snabb sortering. Vi definierar rekursiv algoritm för quicksort enligt följande –

Step 1 − Make the right-most index value pivotStep 2 − partition the array using pivot valueStep 3 − quicksort left partition recursivelyStep 4 − quicksort right partition recursively

Snabbsortering Pseudokod

För att få mer information om det, se pseudokoden för snabb sorteringsalgoritm –

Klicka här om du vill veta om snabb sorteringsimplementering i C-programmeringsspråk.

Annonser

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *