Developer Toolbox

Sortowanie szybkie

Wybiera jedną wartość, zwaną pivotem, i przenosi mniejsze wartości na lewo od niej, a większe na prawo. Potem robi to samo z każdą stroną.

  • Ω(n log n)
  • Θ(n log n)
  • O(n²)
  • O(log n)
  • nie
  • tak
  • porównywanie
  • przenoszenie
  • pivot
  • na właściwym miejscu
0 / 187 kroków

Głębokość rekurencji: 0 · najmniejsza możliwa: 4 · najgorsza: 23 czeka na pivot

Porównania Zamiany

Naciśnij Odtwórz, a linie pokażą, jak rośnie koszt

Naciśnij Odtwórz albo przechodź przez algorytm krok po kroku.

Spacja: odtwórz lub wstrzymaj. Strzałki lewo/prawo: krok. Home i End: przeskocz.

Spróbuj: Wybierz listę odwróconą. Pivot jest zawsze najmniejszy albo największy z pozostałych, więc jedna strona jest pusta, a koszt rośnie do n².

Jak to działa

Pivotem jest tu ostatnia wartość w zakresie. Idąc od lewej do prawej, algorytm przerzuca na lewą stronę każdą wartość nie większą od pivota. Potem pivot staje między obiema stronami i już się nie ruszy. Każdą stronę sortuje się tak samo.

Kiedy warto go użyć

W praktyce jeden z najszybszych sposobów sortowania, do tego prawie bez dodatkowej pamięci. Gdy jednak raz po raz trafia na zły pivot, na przykład na już posortowanej liście, zwalnia. Dlatego w bibliotekach pivot wybiera się staranniej.