Skip to content

Peppuzzo/ASD2425-P1

Repository files navigation

Diagramma del Progetto

Questo repository contiene il progetto completo per il corso di laurea "Algoritmi e Strutture Dati" per l'anno accademico 2024/2025.

Descrizione del Progetto

Il progetto si compone dei seguenti task:

  • Albero AVL: Implementazione in Java di un albero binario di ricerca AVL.
  • AVLTreeSort: Implementazione in Java di un algoritmo di ordinamento.
  • Heap3Sort: Implementazione in Java di un algoritmo di ordinamento basato su uno heap ternario che:
    • Utilizza un MaxHeap Ternario e le relative operazioni di heapify ed estrazione del minimo.
    • Restituisce l'ArrayList ordinato e il numero di confronti effettuati.
  • Valutazione delle Prestazioni: Analisi numerica delle performance degli algoritmi di ordinamento implementati.
  • Test JUnit: Aggiunta di una suite di test unitari per verificare la correttezza delle implementazioni.

Algoritmi di Ordinamento

Entrambe le implementazioni (AVLTreeSort e Heap3Sort) sono algoritmi di ordinamento basati sul confronto e ottimali complessità O(n log n).

  • AVLTreeSort: Si basa sulla proprietà di bilanciamento dell'albero AVL per garantire un inserimento e una visita in-order efficienti.
  • Heap3Sort: Adatta le operazioni tipiche di un heap (heapify ed estrazione) ad un heap ternario, ottenendo un algoritmo in loco e con buone performance.

Test JUnit

Per l'esecuzione dei test unitari si utilizza il framework JUnit 5.
Per la generazione del documento si utilizza la distribuzione TeX Live.

Come Eseguire il Progetto

Requisiti

  • Java JDK 8 (o superiore)
  • JUnit 5 per i test unitari
  • TeX Live per la documentazione dei grafici

Istruzioni

  1. Clonare il Repository:
    git clone https://github.com/tuo-username/ASD2425-P1.git

About

Questa repositiry contiene il progetto totale per il corso di laurea di "Algoritmi e Strutture Dati" e sulla valutazione numerica delle prestazioni

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors