• Algoritmus typu “rozděl a panuj” (divide and conquer)
    • Rozebereme problém na menší problémy a ty vyřešíme
    • Fáze “rozděl”:
      • Zvolí se pivot
      • Přemístí se prvky tak a
    • Fáze “panuj”:
      • Setřídí se části a znovu zavolání QuickSort
  • Jedná se o tzv. rekurzivní algoritmus.
    • Při provádění algoritmu QuickSort (ve fázi “panuj”) se volá sám QuickSort.
    • To nevede k zacyklení, protože algoritmus je volán pro stále kratší části pole .
    • Při volání pro část tvaru se provádění okamžitě ukončí.
  • Složitost algoritmu v průměrném případě:
  • Složitost algoritmu v nejhorším případě:
    • prázdná pravá/levá část (pivot je vždy úplně na straně)
  • In-place třídění
  • Nestabilní třídící algoritmus
Quick-Sort(A, p, r)
	if p<r
		then q <- Partition(A, p, r)
		     Quick-Sort(A, p, q-1)
		     Quick-Sort(A, q+1, r)
Partition(A, p, r)
	x <- A[r]
	i <- p-1
	for j <- p to r-1
		do if A[j] <= x
			then i <- i+1
			     swap(A[i], A[j])
	swap(A[i+1], A[r])
	return i+1

Předchozí: Základní metody třídění - insert sort, select sort, bubble sort Následující: Merge sort a jeho složitost Celý okruh: 1. Teoretické základy informačních technologií