« poprzedni punkt | następny punkt » |
Sortowanie jest podstawową operacją w algorytmice. Trudno sobie wyobrazić utworzenie rozsądnej bazy danych, słownika, czy książki telefonicznej bez wcześniejszego uporządkowania elementów tych zbiorów. Wiele problemów algorytmicznych wywodzących się z różnych dziedzin aplikacji, zawiera problem sortowania jako swoją integralną część. Co więcej, o koszcie rozwiązań różnych problemów, np. grafowych, czy geometrycznych, decyduje koszt użytego algorytmu sortowania.
Celem tego wykładu jest przedstawienie kilku podstawowych algorytmów sortowania. Wszystkie te algorytmy sortują w modelu drzew decyzyjnych, tzn. operacją dominującą w tych algorytmach jest porównywanie elementów. Inną cechą łączącą omawiane tu algorytmy, jest struktura danych użyta do reprezentacji elementów sortowanego ciągu, a mianowicie tablica. Przedstawimy dwa algorytmy, których idea jest bardzo prosta, ale które mają złożoność kwadratową w stosunku do rozmiaru danych: sortowane przez selekcję lub wybór i sortowanie przez wstawianie, a ponadto dwa algorytmy rekurencyjne oparte o zasadę "dziel i zwyciężaj": algorytm sortowania przez scalanie i algorytm szybkiego sortowania. Te dwa ostatnie algorytmy mają liniowo logarytmiczną średnią złożoność czasową.
« poprzedni punkt | następny punkt » |