Co to jest sortowanie tablic?

Sortowanie tablic to proces pobierania poszczególnych elementów tablicy i porządkowania ich w pewnego rodzaju logicznej kolejności zgodnie z serią reguł zdefiniowanych przez użytkownika. Proces obejmuje przechodzenie przez tablicę, po jednym elemencie na raz, i testowanie tego elementu względem otaczających go elementów, aby określić, czy należy go przenieść do innego indeksu w tablicy. Podczas sortowania tablic istnieje kilka algorytmów, których można użyć, zwłaszcza gdy warunki sortowania są liczbowe, a nie bardziej arbitralne. Większość algorytmów sortowania tablic mierzy się ich szybkością i wydajnością, przy czym najwolniejsze algorytmy są najłatwiejsze do zaprogramowania, a najszybsze są znacznie bardziej złożone.

Najprostszy algorytm sortowania tablic nazywa się sortowaniem bąbelkowym i jest też najwolniejszy. Proces rozpoczyna się pętlą, która przejdzie przez każdy element tablicy. Bieżący element jest porównywany z następnym elementem w tablicy i jeśli następny element ma niższą wartość niż bieżący element, dane w indeksach są przełączane. Wadą sortowania bąbelkowego jest to, że musi kilkakrotnie przechodzić przez tablicę, aby wykonać wszystkie niezbędne zamiany w celu posortowania tablicy. W najbardziej podstawowych implementacjach sortowanie będzie przechodzić przez całą tablicę jeden pełny raz dla każdego zawartego w niej elementu.

Sortowanie przez wybór korzysta z algorytmu, który wykonuje sortowanie tablic w nieco bardziej wydajny sposób niż sortowanie bąbelkowe, ale nadal wymaga wielu iteracji w tablicy. To sortowanie rozpoczyna się od przechodzenia przez tablicę w celu znalezienia elementu o najniższej wartości. Ten element jest następnie umieszczany w pierwszym indeksie tablicy, a niektóre zmienne śledzące są zwiększane. Następnie cykl się powtarza, szukając następnej najniższej wartości, która zostanie umieszczona w drugim indeksie tablicy. Proces trwa do momentu umieszczenia elementu o najwyższej wartości w ostatnim indeksie tablicy.

Metoda sortowania tablic, która może być wydajna, ale czasami skomplikowana w implementacji, jest znana jako szybkie sortowanie. Szybkie sortowanie polega na wzięciu wartości, która znajduje się w środku wszystkich możliwych wartości przechowywanych w tablicy. Algorytm przechodzi przez wszystkie elementy tablicy i umieszcza wszystkie wartości większe niż mediana na końcu tablicy i niższe wartości na początku. Ten proces jest wykonywany rekurencyjnie na blokach tablicy, aż na końcu posortowana zostanie cała tablica. Zakładając, że średnia wartość użyta w tablicy jest dość dokładna, może to być bardzo szybki sposób sortowania.

Jednym z czynników, który może wpływać na algorytm sortowania tablic, jest sposób, w jaki dane są testowane pod kątem równoważności. Proste liczby są łatwe do porównania, dla których wartość jest większa, ale może to nie mieć miejsca w przypadku złożonych klas danych, w których należy porównać wiele warunków. Im dłużej trwa porównanie, czy jeden element jest większy czy mniejszy od innego, tym dłużej algorytmowi zajmie sortowanie tablicy.