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.