Datová struktura a algoritmy – Rychlé řazení

Reklamy

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.

Reklamy

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *