Skip to content

Czarko-exe/AlgorithmDesignAndAnalysis-Sort

Repository files navigation

📊 Algorytmy Sortowania - C++

Repozytorium zawiera implementacje klasycznych algorytmów sortowania w języku C++. Projekt został zrealizowany jako część zajęć projektowych z przedmiotu "Programowanie i analiza algorytmów".

Celem projektu jest praktyczne zapoznanie się z różnymi metodami sortowania danych, zrozumienie ich złożoności obliczeniowej oraz analiza wydajności w różnych scenariuszach.

🗂️ Zaimplementowane Algorytmy

Projekt zawiera oddzielne pliki nagłówkowe (.hpp) dla każdego z algorytmów:

  • InsertionSort.hpp - Sortowanie przez wstawianie. Prosty algorytm, wydajny dla małych lub wstępnie posortowanych zbiorów danych.
  • MergeSort.hpp - Sortowanie przez scalanie. Algorytm oparty na paradygmacie "dziel i zwyciężaj", gwarantujący stabilną złożoność $O(N \log N)$.
  • QuickSort.hpp - Sortowanie szybkie. Jeden z najpopularniejszych i najszybszych w praktyce algorytmów, również korzystający z podejścia "dziel i zwyciężaj".
  • Heapsort.hpp - Sortowanie przez kopcowanie. Wykorzystuje strukturę danych zwaną kopcem binarnym, gwarantuje złożoność $O(N \log N)$ w najgorszym przypadku.
  • Introsort.hpp - Sortowanie introspektywne. Hybrydowy algorytm łączący zalety QuickSort (szybkość w średnim przypadku) oraz HeapSort (gwarancja $O(N \log N)$ w najgorszym przypadku). Często stosowany w standardowych bibliotekach, np. std::sort w C++.

🚀 Struktura Projektu

  • Pliki *.hpp - Implementacje poszczególnych algorytmów sortowania w postaci szablonów klas lub funkcji.
  • main.cpp - Plik główny programu, służący prawdopodobnie do testowania zaimplementowanych algorytmów, generowania danych wejściowych i pomiaru czasu wykonania (szczegóły zależą od zawartości).

🛠️ Technologie

  • Język: C++
  • Paradygmat: Programowanie proceduralne / obiektowe / generyczne (w zależności od implementacji)

🎓 Kontekst Akademicki

Projekt został stworzony w celach edukacyjnych, aby zgłębić działanie fundamentalnych algorytmów. Kod może służyć jako materiał referencyjny dla studentów uczących się podstaw informatyki i analizy złożoności.

About

Zbiór implementacji popularnych algorytmów sortowania (Introsort, Merge Sort, Quick Sort) napisanych w języku C++. Projekt zrealizowany w ramach przedmiotu "Programowanie i analiza algorytmów" na studiach.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages