
Artykuł przygotował: 08.10.2021
Algorytmy sortowania - co trzeba umieć
Sortowanie to jedna z najważniejszych rzeczy w programowaniu. Sprawdź aplikacje albo serwisy, z których korzystasz. Na pewno bez problemu znajdziesz jakąś listę z posortowanymi danymi.
- Lista rzeczy do zrobienia.
- Lista zamówień, które złożyłeś w sklepie internetowym.
- Lista wydatków posortowana od największych do najmniejszych.
Takich przykładów dałoby się znaleźć dziesiątki. Po prostu gdzie nie spojrzysz tam masz dane, które są w jakiś sposób posortowane. Lubimy pracować z posortowanymi danymi. Tak jest łatwiej i wygodniej. Pomyśl co by było gdyby trzeba przejrzeć setki pozycji na liście, które są ułożone w zupełnie losowy sposób.
Software Developer
Ścieżka kariery to zestaw kursów, które krok po kroku nauczą cię umiejętności niezbędnych w zawodzie. Zaczynasz od zera i po ukończeniu ścieżki umiesz to co jest potrzebne na start w danej dziedzinie. Dowiedz się więcej
Jak wykonywane jest sortowanie
Żeby dane dało się posortować potrzebny nam będzie jakiś algorytm, który to sortowanie wykonuje. Taki algorytm możemy sprowadzić do prostego schematu:
nieposortowane dane wejściowe -> algorytm -> posortowane dane wyjściowe.
Czyli bierzemy dane, które są ułożone w przypadkowej kolejności, przetwarzamy je odpowiednim algorytmem i na wyjściu otrzymujemy dane posortowane. I to cała filozofia.
Różne algorytmy sortowania
Są różne algorytmy sortowania:
- Sortowanie bąbelkowe;
- Sortowanie przez wstawianie;
- Sortowanie grzebieniowe;
- Sortowanie przez zliczanie;
- Sortowanie przez wybieranie;
To tylko wierzchołek góry lodowej bo takich algorytmów jest sporo. Te algorytmy różnią się od siebie różnymi cechami. Jedne są szybsze a inne wolniejsze. Jedne są prostsze do wdrożenia a inne bardziej złożone. Niektóre z nich mają praktyczne zastosowania a inne są bardziej “akademickie”.
Ile trzeba umieć?
To jest dobre pytanie. W praktyce, w wielu językach programowania mamy pewne struktury danych, które można sortować wykorzystując wbudowane mechanizmy. Oznacza to tyle, że możesz wykorzystać gotowe algorytmy do sortowania takich danych. Dobrze jednak jest wiedzieć z czym wiąże się użycie konkretnego sposobu sortowania. Dzięki temu możesz ocenić złożoność, czas wykonywania oraz precyzję wybranej przez ciebie metody. Dobrym pomysłem jest opanowanie, przynajmniej podstawowych algorytmów sortujących. Chodzi o to, żeby mieć jakąś sensowną orientację w tym temacie. I żeby zdawać sobie sprawę jakie mogą być konsekwencje sortowania danych w nieoptymalny sposób.
Pytania rekrutacyjne
Zamierzasz się ubiegać o pracę jako programista? To przygotuj się m.in z algorytmów sortowania. To jest jeden z ulubionych tematów rekruterów w IT. Istnieje spora szansa na to, że na rozmowie o pracę dostaniesz zadanie polegające na implementacji albo objaśnieniu danego algorytmu sortowania. Niektórzy twierdzą, że jest to bardzo akademickie podejście do tematu bo w praktyce takie algorytmy rzadko pisze się od podstaw. Niemniej jednak takie pytania często się pojawiają więc nie daj się zaskoczyć.

Z tą ścieżką zdobędziesz zestaw kluczowych i bardzo uniwersalnych umiejętności programistycznych.
Dowiedz się więcejNa podsumowanie
Algorytmy sortowania są bardzo ważne bo dzięki nim możemy pracować z uporządkowanymi danymi. W praktyce takie algorytmy rzadko pisze się od podstaw bo sortowanie to problem realizowany często za pomocą wbudowanych mechanizmów języka, gotowych funkcji, bibliotek programistycznych itp. Jedna jeśli poważnie myślisz o programowaniu to potrzebna ci będzie dobra orientacja w takich algorytmach. Chociażby po to, żeby ocenić złożoność obliczeniową danego algorytmu. No i po to, żeby nie być zaskoczonym podczas ubiegania się o pracę.