RGSH2COVRALS1
Zdjęcie przedstawia stertę kolorowych klocków lego.

PYI_R_W14_M26 Sortowanie przez scalanie

Źródło: Xavi Cabrera, domena publiczna.

Sortowanie danych jest jednym z podstawowych problemów informatyki, często spotykanym w praktycznych zastosowaniach, takich jak przetwarzanie danych, wyszukiwanie informacji czy analiza statystyczna. Istnieje wiele algorytmów sortowania, które różnią się sposobem działania oraz efektywnością. Jednym z najbardziej klasycznych i jednocześnie wydajnych algorytmów jest sortowanie przez scalanie.

Algorytm sortowania przez scalanie opiera się na metodzie „dziel i zwyciężaj”. Polega ona na podziale dużego problemu na mniejsze, łatwiejsze do rozwiązania podproblemy. W przypadku sortowania przez scalanie tablica danych jest dzielona na coraz mniejsze fragmenty, aż do momentu, gdy każdy z nich zawiera tylko jeden element, który z definicji jest już posortowany.

Sortowanie przez scalanie stanowi doskonały przykład zastosowania metody „dziel i zwyciężaj” oraz pokazuje, jak odpowiednie rozbicie problemu i połączenie wyników prowadzi do skutecznego rozwiązania złożonych zadań algorytmicznych.

Poznałeś już metodę sortowania bąbelkowego. Zanim przejdziesz do zapoznania się z materiałem wykonaj poniższe zadanie.

Ćwiczenie na rozgrzewkę

R1S758Q39JLLS
Ćwiczenie 1
Uporządkuj podane linie pseudokodu we właściwej kolejności tak, aby powstał usprawniony algorytm sortowania bąbelkowego.

Funkcja zamiana() zamienia ze sobą miejscami elementy tablic o podanych indeksach.
Twoje cele
  • Omówisz algorytm sortowania przez scalanie.

  • Określisz złożoność czasową i pamięciową algorytmu merge sort.

  • Zaimplementujesz algorytm merge sort. w języku programowania.

  • Zastosujesz algorytm merge sort. do posortowania przykładowej tablicy.