Appunicri HTML

Percorso di Algoritmi e Strutture Dati

Le dispene integrali del corso sono consultabili al seguente indirizzo:
http://www.dti.unimi.it/~aringhieri/

Algoritmo

Complessità di un algoritmo

Tempo di calcolo di un algoritmo e complessità computazionale asintotica in ordine di grandezza

Algoritmi efficienti, non efficienti e ottimi, ordine polinominale e superpolinominale

Strutture dati

Tipologie di Strutture dati

Liste, liste con puntatori, liste con cursori e Implementazione in C di una lista

Pile e code, Realizzazione in C di una pila con vettore e di una coda con vettore circolare

Alberi, visite di un albero e diverse realizzazioni di alberi

Alberi binari, alberi decisionali e realizazione in C degli operatori di un albero binario

Insiemi, realizzazione di un insieme con vettore booleano e con liste ordinate e non

Mfset e realizzazione in C di un insieme Mfset

Dizionari, realizzazione dizionario con vettore ordinato e ricerca binaria

Realizzazione dizionario con tabelle hash e relativi metodi di scansione

Coda di priorità, Heap e algoritmo di ordinamento heapsort

Alberi binari di ricerca, Alberi 2-3 e B-Alberi

Grafi, realizzazione di grafi con matrici e con insiemi di adiacenza

Esplorazione di un grafo, DFS, BFS, e componenti connessi

Progettazione di Algoritmi

Divide et Impera, Mergesort e Quicksort

Backtrack e Algoritmo di Knuth Morris Pratt

Programmazione Dinamica e String Matching Approssimato

Greedy, Scheduling di programmi e algoritmo di Moore, Minimo albero di copertura e algoritmo di Kruskal

Ricerca Locale, TSP “Traveling Salesman Problem”

Cammini minimi (SPT), algoritmo di Dijkstra e Johnson, e SPT con coda e con pila, algoritmo di Pape-D’Esopo

Analisi di Complessità di algoritmi ricorsivi, espansione delle relazioni e relazioni di ricorrenza lineare

Progetto di scheduling di programmi con algoritmo di Moore, eseguito in linguaggio C























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.