Wpis z mikrobloga

#japeruczyibawi #programowanie #algorytmika #naukaprogramowania

Sortowanie szybkie

Co to jest sortowanie szybkie?

Jest to jedna z metod sortowania zbiorów. Jak nazwa wskazuje, ta metoda jest dość szybką metodą.

Na czym ona polega?

Metoda bazuje na fenomenie częściowego porządku. Poprzez dzielenie tablicy na mniejsze części doprowadza do posortowania. W tej metodzie ustala się element osiowy (nie musi być na środku zbioru, może być skrajnym elementem, a nawet losowym). Gdy element zostanie ustalony, algorytm sortuje jedną część na elementy mniejsze bądź równe elementowi osiowemu, a prawa strona - na elementy większe od elementu osiowego. Kiedy zostanie wprowadzony wstępny porządek, to algorytm zaczyna sortować powstałe partycje, czyli części częściowo uporządkowane.

Jak to wygląda w praktyce?

Otóż tak. Widać dokładnie, jak algorytm wybiera element osiowy i zaczyna częściowo sortować. Też należy zauważyć, że powstałe partycje nie muszą być równe.

W jaki sposób jest ustalany częściowy porządek?

Najpierw szukamy elementu, który od lewej strony nie pasuje do elementu osiowego, podobnie z prawej strony. Jeśli znajdziemy taki element - zamieniamy go miejscami. Porządkowanie uznane jest za zakończone, kiedy dwa wskaźniki przekroczą swoje partycje. Kiedy porządkowanie jest skończone, to wskaźniki od lewej i prawej wyznaczają miejsce podziału do sortowania partycji.

Kod
  • 14
@japer: warto jeszcze dodać, że wbrew temu co może sugerować nazwa, nie jest to najszybszy algorytm sortujący :)

@moon5: jeśli Cię to interesuje to poczytaj sobie jakieś książki na temat algorytmiki, taką chyba najbardziej klasyczną pozycją są "Algorytmy i struktury danych" Cormena (aczkolwiek to straszna cegła i raczej nie jest prosta). Ostatnio ktoś mi jeszcze polecał taką książkę, ale jeszcze jej nie czytałam, więc nie wiem co w niej dokładnie
@megan_: Dziękuję. Przejrzę, ja będę robiła coś bardziej związanego z programowaniem, czyli kontynuację nauki PHP i JS, czy poznawanie podstaw języka C.
@megan_: złożoność sprowadza się do kwadratu w najgorszym wypadku, zapomniałem dodać. Algorytm można zoptymalizować poprzez medianę trzech, która zmniejsza ryzyko tempa pesymistycznego.