Rychlé řazení je vysoce efektivní algoritmus řazení a je založen na rozdělení pole dat do menších polí. Velké pole je rozděleno na dvě pole, z nichž jedno obsahuje hodnoty menší než zadaná hodnota, řekněme pivot, na základě kterého je vytvořen oddíl a jiné pole obsahuje hodnoty větší než hodnota pivot.
Quicksort partitions an pole a poté se rekurzivně dvakrát volá, aby seřadily dva výsledné dílčí soubory. Tento algoritmus je docela efektivní pro velké datové sady, protože jeho průměrná a nejhorší složitost jsou O (n2).
Oddíl v rychlém řazení
Následující animovaná reprezentace vysvětluje, jak k vyhledání kontingenční hodnoty v poli.
Kontingenční hodnota rozděluje seznam na dvě části. A rekurzivně najdeme pivot pro každý dílčí seznam, dokud všechny seznamy neobsahují pouze jeden prvek.
Algoritmus Pivot Quick Sort
Na základě našeho chápání rozdělení v rychlém řazení budeme nyní zkuste pro něj napsat algoritmus, který je následující.
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
Pivot pseudocode rychlého řazení
Pseudokód pro výše uvedený algoritmus lze odvodit jako –
Algoritmus rychlého řazení
Rekurzivním použitím pivotního algoritmu skončíme s menšími možnými oddíly. Každý oddíl je poté zpracován pro rychlé třídění. Definujeme rekurzivní algoritmus pro quicksort následujícím způsobem –
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
Rychlé třídění pseudokódu
Chcete-li se do něj dostat více, podívejte se na pseudokód algoritmus řazení –
Chcete-li vědět o rychlé implementaci řazení v programovacím jazyce C, klikněte sem.