AiSD Platform
Projekt 1

Algorytmy sortowania

Sortowanie to jeden z fundamentalnych problemow informatyki. Jak ulozyc n elementow w porzadku rosnacym — i dlaczego jedne metody sa tysiace razy szybsze od innych? Zbadaj to interaktywnie.

6 zaimplementowanych algorytmow

Bubble Sort

O(n²)

Porownuje sasiednie elementy i zamienia jesli sa w zlej kolejnosci

Shell Sort

O(n^3/2)

Bubble Sort z malejacymi przyrostami Papernova-Stasevicha

Merge Sort

O(n log n)

Dziel i zwyciezaj — dzieli na polowy i scala posortowane czesci

Heap Sort

O(n log n)

Buduje max-heap i wielokrotnie wyciaga element maksymalny

Quick Sort (rek.)

O(n log n)

Losowy pivot, partycja na mniejsze/wieksze, rekurencja

Quick Sort (iter.)

O(n log n)

Mediana trzech jako pivot, iteracyjny z jawnym stosem

Czym jest sortowanie?

Sortowanie to proces ukladania elementow zbioru w okreslonym porzadku — najczesciej rosnacym lub malejacym. Jest to jedna z najczesciej wykonywanych operacji w informatyce: wyszukiwanie binarne, bazy danych, systemy plikow, algorytmy grafowe — wszystkie zaleza od posortowanych danych.

Rozne algorytmy sortowania maja rozna zlozonosc obliczeniowa. Proste metody jak Bubble Sort dzialaja w czasie O(n²) — dla 10 000 elementow to 100 milionow operacji. Zaawansowane metody jak Merge Sort czy Quick Sort dzialaja w O(n log n) — to tylko 130 000 operacji. Roznica jest tysiackrotna.

W tym projekcie implementujemy 6 algorytmow, testujemy je na 5 roznych ksztaltach danych wejsciowych (losowe, rosnace, malejace, A-ksztaltne, V-ksztaltne) i analizujemy czy rzeczywista liczba operacji zgadza sie z teoretyczna zlozonoscia.

Dane testowe

KsztaltPrzykladZastosowanie w analizie
Rosnace1, 2, 3, 4, 5, 6, 7, 8Best case: Bubble Sort O(n)
Malejace8, 7, 6, 5, 4, 3, 2, 1Worst case: Bubble Sort O(n²)
A-ksztaltne1, 3, 5, 7, 8, 6, 4, 2Przypadek mieszany
V-ksztaltne8, 6, 4, 2, 1, 3, 5, 7Przypadek mieszany
Losowe4, 7, 2, 9, 1, 5, 8, 3Average case

Wartosci w kazdym ciagu naleza do przedzialu <1, 10×n> — zgodnie z instrukcja. Dla kazdego rozmiaru n generowane jest 10 ciagow, wyniki usredniane.