Algoritmica (A.A ): indice delle lezioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmica (A.A ): indice delle lezioni"

Transcript

1 Algoritmica (A.A ): indice delle lezioni Mauro Leoncini 1 Lezione del 2 marzo 2005 (3h) Informazioni generali sul corso Suddivisione in moduli e crediti formativi corrispondenti. Libro di testo e altro materiale didattico. Modalità d esame. Ricevimento studenti. Pagina web di riferimento. Algoritmi Nozioni di algoritmo, linguaggio ed interprete. Esempio della preparazione del caffè. Azioni elementari dell interprete. Programmi e linguaggi di programmazione (imperativa). Utilità di uno pseudocodice. Numeri di Fibonacci Crescita di una popolazione di conigli. matematico e numeri di Fibonacci {F n } n 1. Modello Calcolo diretto Formula chiusa per F n. È stato ricordato come il calcolo diretto richieda in realtà un algoritmo (non sia cioè traducibile in una semplice azione elementare dell interprete) e come questo fatto, se non correttamente individuato, possa portare a conclusioni errate riguardo il costo (tempo) di esecuzione del programma. Problemi di arrotondamento nel calcolo della formula diretta. Un algoritmo ricorsivo Calcolo del tempo di esecuzione in termini di numero di linee di codice eseguite. Prima spiegazione del perché non si usa una misura diretta (secondi o multipli di secondo) per indicare il tempo di esecuzione degli algoritmi. Albero della ricorsione. Definizioni base: nodi interni e foglie. Conteggio del numero di foglie e del numero di nodi interni dell albero della ricorsione. Considerazioni sul tempo di esecuzione. Un algoritmo iterativo Calcolo bottom-up di F n. Tecnica della programmazione dinamica. Calcolo del tempo di esecuzione. 1

2 Occupazione di memoria Importanza di algoritmi efficienti sia dal punto di vista del tempo sia da quello dell occupazione di memoria. Un secondo algoritmo iterativo Modifica all algoritmo precedente che consente di utilizzare solo un numero costante di celle di memoria. Notazione asintotica Riconsiderazione della misura di costo come numero di linee di codice. Costanti moltiplicative. Dipendenza delle costanti, nei programmi reali, da molti fattori (es., velocità del processore, qualità del codice e del compilatore). Notazione asintotica e sua utilità in fase di modellazione algoritmico/matematica. Cenno al fatto (che verrà verificato in laboratorio) che le costanti nascoste possono essere determinate sperimentalmente su ogni particolare architettura. Algoritmo di costo sublineare Presentazione ( ) dell algoritmo basato sulla 1 1 esponenziazione della matrice. Dimostrazione del costo lasciata ad una lezione 1 0 successiva. Misura delle istanze In funzione di che cosa deve essere calcolato il costo (in tempo e/ spazio) dell esecuzione di un programma? Nozione di dimensione di un istanza. Nozione di codifica compatta. Rivisitazione del costo dei vari algoritmi presentati. 2 Lezione del 3 marzo 2005 (2h) Modelli di calcolo Caratteristiche richieste ad un modello per l analisi degli algoritmi (anche in relazione all utilizzo della notazione asintotica). Interprete idealizzato: macchina a registri e macchina a puntatori. Criteri di costo Costo uniforme e costo logaritmico. Riflessione su criterio di costo logaritmico e rappresentazione compatta dei problemi. Esempio: calcolo del costo di esecuzione dell algoritmo Fibonacci3 con criterio uniforme (O(n)) e logaritmico (O(n 2 ). Metodologia di analisi Individuazione delle operazioni più costose e/o più frequentemente utilizzate. Analisi del caso più favorevole (best-case), di quello più sfavorevole (worst-case) e del caso medio (average-case). Semplicissimi elementi di probabilità. 2

3 Ricerca sequenziale e ricerca binaria Algoritmo per la ricerca sequenziale di una chiave in una lista di chiavi. Analisi best-, worst- e averagecase. Algoritmo che implementa la ricerca dicotomica (o binaria). Verifica informale della correttezza mediante analisi di due esempi. 3 Lezione del 4 marzo 2005 (2h) Ricerca binaria Analisi best-case, worst-case e average-case dell algoritmo di ricerca binaria presentato ieri. Limiti superiori e inferiori di complessità Precisazione sul significato delle locuzioni Costo di un algoritmo e complessità di un problema. Limiti inferiori e superiori di complessità. Notazioni asintotiche O, Ω e Θ. Strutture dati elementari Nozione di tipo di dato e di struttura dati. 4 Lezione del 10 marzo 2005 (1h) Puntatori Nozione di puntatore. Differenza fra variabili di tipo T e puntatori ad oggetti di tipo T. Discussione di un esempio di programma C++ che utilizza i puntatori. Il problema del ridimensionamento di un array. Rappresentazione di collezioni di dati Liste lineari. Record e costrutto struct del C++. Programma per la creazione di una lista lineare. Implementazione del tipo astratto stack mediante liste lineari. 5 Lezione dell 11 marzo 2005 (2h) Code Tipo astratto queue. Cenni all implementazione (che verrà svolta in laboratorio) mediante liste collegate e mediante array. Costo delle operazioni base di stack e queue nelle due implementazioni (array e puntatori). Alberi Alberi liberi (free tree) e alberi radicati (rooted tree). Definizioni base. Radice, foglie, nodi interni, genitori, figli e discendenti. Livelli, 3

4 profondità e altezza. Grado di un nodo. Alberi binari e alberi d-ari. Alberi d-ari completi. Rappresentazione di alberi Rappresentazioni indicizzate: vettore dei padri e vettore posizionale. Rappresentazioni collegate: differenti problematiche nelle situazioni in cui il grado limitato da una piccola costante ovvero in cui il grado non è limitato a priori oppure è una costante elevata. Caso degli alberi binari. Uso di vettori per memorizzare i puntatori ai figli. Rappresentazione mediante liste dei figli e mediante tecnica primo figlio-fratello successivo. Visita di un albero Algoritmo di visita generica. Uso di pile o code some strutture di supporto. Visita in profondità (Depth-first search) e visita in ampiezza (Breadth-first search). 6 Lezione dell 17 marzo 2005 (2h) Ordinamento Il problema dell ordinamento di un iniseme di chiavi. Chiavi e dati satellite. Ordinamento mediante il solo confronto di chiavi. Proprietà di stabilità e di ordinamento in loco. Metodi elementari Metodi di costo O(n 2 ). Ordinamento per selezione e ordinamento per inserzione. Valutazione del costo. Ordinamento a bolle (solo cenni). Heapsort Struttura heap. Rappresentazioni alternative (come array e come albero binario completo). Algoritmo per costruire uno heap e per ripristinare la proprietà di heap. Algoritmo heapsort. Valutazione del costo computazionale (O(n log n) worst-case). 7 Lezione dell 18 marzo 2005 (2h) Heapsort Pseudocodice completo dell algoritmo. Mergesort Tecnica di progettazione divide-et-impera (divide-and-conquer). Descrizione dell algoritmo mergesort: suddivisione del problema in due sottoproblemi (divide) e ricombinazione (merge). Pseudocodice completo. 4

5 Analisi di algoritmi ricorsivi Metodo dell iterazione e derivazione del costo del mergesort. Teorema fondamentale delle ricorrenze (senza dimostrazione). Quicksort Presentazione dell idea algoritmica (sempre del tipo divide-etimpera). Specularità rispetto al mergesort. Procedura di partizionamento. Pseudocodice. 8 Lezione del 31 marzo 2005 (2h) Quicksort Correttezza dello pseudocodice. Analisi worst-case. Cenni sul comportamento nel caso medio. Complessità del sorting Modello di calcolo degli alberi decisionali. Derivazione di un limite inferiore di complessità Ω(n log n) valido per gli algoritmi di ordinamento che utilizzano solo confronti fra chiavi. 9 Lezione del 1 aprile 2005 (2h) Ordinamento in tempo lineare Ordinamento di n numeri nell intervallo 1 k. Integer sort (o Counting sort). Estensione dell idea alla base del counting sort al caso di k (moderatamente) elevato (radix sort) e al caso dell ordinamento di record con campi di natura arbitraria (bucket sort). Algoritmi geometrici Problema del calcolo dell inviluppo convesso di un insieme di n punti nel piano. Cenni ad applicazioni nei settori della robotica (aggiramento di ostacoli) e della computer animation (rilevamento di collisioni). Intuizione per un primo algoritmo. 10 Lezione del 7 aprile 2005 (2h) Algoritmi geometrici Costo worst-case dell algoritmo intuitivo. Scansione di Graham. Determinazione della curva (destra o sinistra) formata da tre punti ordinati. Calcolo del costo della scansione di Graham. Statistiche d ordine Definizione di media, moda e mediana. Mediana come n/2-esima statistica d ordine. Calcolo della k-esima statistica 5

6 d ordine per valori piccoli di k. Algoritmo del torneo per il calcolo del secondo minimo. 11 Lezione dell 8 aprile 2005 (2h) Statistiche d ordine Algoritmo heapselect per il calcolo efficiente della k- esima statistica d ordine (con k = O(n/ log n)). Algoritmo quickselect per il calcolo (randomizzato) del mediano (e per qualunque k-esima statistica d ordine). Cenni al costo worst-case e average-case di quickselect. Tecniche algorimiche Caratteristiche generali della tecnica divide-et-impera (ricordando gli algoritmi mergesort e quicksort). Moltiplicazione di numeri interi di grandezza arbitraria in tempo subquadratico. Cenni al prodotto di matrici. Caratteristiche generali della tecnica della programmazione dinamica (ricordando il primo algoritmo iterativo per il calcolo dei numeri di Fibonacci). Problema della minima distanza di edit fra due stringhe. 12 Lezione del 14 aprile 2005 (2h) Programmazione dinamica Problema della minima distanza di edit fra due stringhe. Caratterizzazione e calcolo del costo della soluzione ottima. Calcolo esplicito della sequenza di operazioni di costo ottimo. Problema dell allineamento di sequenze biologiche. 13 Lezione del 15 aprile 2005 (2h) Tecnica greedy Caratteristiche generali di un algoritmo greedy (ingordo). Problema del resto. Problema dell ottimalità dell algoritmo greedy rispetto ad un determinato sistema di monete. Algoritmo di programmazione dinamica per il problema del resto. Problemi di scheduling. Scheduling di job e minimizzazione dei tempi di attesa. Scheduling di job caratterizzati da deadline. 6

7 Tecniche algoritmiche Considerazioni generali sulle tecniche studiate ed esistenza di problemi difficili. Esempio del problema del commesso viaggiatore. Grafi Grafi e grafi diretti. Terminologia e definizioni di base (adiacenza di vertici, incidenza di archi, grado di un vertice, cammini e cammini orientati, connettività e connettività in senso forte). 14 Lezione del 21 aprile 2005 (2h) Grafi Cicli in un grafo. Grafi aciclici. Visita di grafi Visita in ampiezza (breadth-first search). Proprietà dell albero T BF S che rappresenta il risultato della visita in ampiezza. Proprietà della distanza (con dimostrazione del Lemma 11.2). Caratterizzazione degli archi del grafo rispetto a T BF S. 15 Lezione del 22 aprile 2005 (2h) Visita di grafi Visita in ampiezza su grafi orientati. Caratterizzazione degli archi del grafo. Visita in profondità (depth-first search), versione ricorsiva. Caratterizzazione degli archi del grafo rispetto all albero T DF S che rappresenta il risultato della visita in profondità. Visita in profondità di grafi orientati. Componenti connesse Componenti connesse di un grafo. Verifica della proprietà di connessione utilizzando una qualunque procedura di visita. Componenti fortemente connesse di un grafo orientato. Algoritmo per il calcolo delle componenti connesse (senza dimostrazione formale di correttezza, ma sviluppando e verificando le intuizioni che ne stanno alla base). 16 Lezione del 28 aprile 2005 (2h) Alberi di copertura Definizione di albero di copertura (spanning tree). Grafi pesati e minimo albero di copertura. Algoritmo di Kruskal, con 7

8 dimostrazione di correttezza. Algoritmo di Prim, con dimostrazione di correttezza. Tempo di esecuzione con implementazione banale. Problemi di cammino minimo su grafi orientati Definizione di cammino di lunghezza minima (o, semplicemente, cammino minimo. Problema del calcolo dei cammini minimi da un vertice a tutti gli altri. 17 Lezione del 29 aprile 2005 (2h) Cammini minimi Proprietà dei cammini minimi: sottostruttura ottimale, esistenza dell albero dei cammini minimi, disuguaglianza triangolare. Problema dei cicli di lunghezza negativa. Operazione del rilassamento di un arco. Intuizione alla base dell algoritmo di Bellman e Ford. Costo computazionale dell algoritmo di Bellman e Ford. Algoritmo di Dijkstra per grafi orientati senza archi di peso negativo. Dimostrazione informale della correttezza dell algortimo di Dijkstra. Costo computazionale dell implementazione banale. 18 Lezione del 5 maggio 2005 (2h) Problema del dizionario Definizione ed operazioni base. Chiavi ed informazione satellite. Implementazione mediante array. Alberi binari di ricerca Definizione. Implementazione delle operazioni search, insert e delete. Costo computazionale nel caso più sfavorevole e nel caso medio (solo cenni). Alberi AVL. Definizione di bilanciamento in altezza. Implicazione sull altezza dell albero. Alberi AVL più sbilanciati: alberi di Fibonacci. 19 Lezione del 6 maggio 2005 (2h) Alberi binari di ricerca Mantenimento del bilanciamento in alberi AVL. Rotazioni. Inserimento e cancellazione di chiavi. Alberi 2-3 Definizione di albero 2-3. Altezza di un albero 2-3. Ricerca di una chiave. 8

9 20 Lezione del 12 maggio 2005 (2h) Alberi 2-3 Inserimento e cancellazione di chiavi in un albero 2-3: divisione (split) e fusione (join) di nodi. B-alberi Problematiche relative alla memorizzazione e al recupero di informazione in memoria secondaria. Operazioni di I/O. Definizione di B-albero. Ricerca di chiavi in un B-albero. Costo di un accesso in termini di operazioni aritmetico/logiche e di I/O. 21 Lezione del 13 maggio 2005 (2h) B-alberi Cenni al problema dell inserimento e della cancellazione di chiavi da un B-albero. Hashing Tabelle (o tavole) ad accesso diretto. Problemi connessi con la cardinalità dell universo di chiavi. Definizione di funzione hash. Funzioni hash perfette. Principio di uniformità semplice. Metodo della divisione. Funzioni hash per chiavi alfanumeriche. Collisioni di chiavi. Tecnica del chaining per il trattamento delle collisioni. 22 Lezione del 19 maggio 2005 (2h) Hashing Indirizzamento aperto (Open addressing), principi base. Funzione di scansione. Scansione lineare e clustering primario. Il problema della cancellazione delle chiavi. Scansione quadratica e custering secondario. Double hashing. Code con priorità Definizione e funzionalità supportate. Applicazioni delle code con priorità (con particolare riferimento alla simulazione per eventi). 23 Lezione del 20 maggio 2005 (2h) Code con priorità Implementazione mediante d-heap. Heap binomiali Definizione e proprietà degli alberi binomiali. Heap binomiale. Implementazione di una coda con priorità mediante heap binomiale. 9

10 24 Lezione del 26 maggio 2005 (2h) Manipolazione di insiemi disgiunti Rivisitazione del problema del calcolo delle componenti connesse di un grafo. Espressione dell algoritmo in termini di operazioni astratte makeset, find e union. Struttura dati union-find. Implementazioni elementari della struttura union-find. Alberi quick find e alberi quick union. Miglioramento della union in strutture quick find: euristica dell unione pesata (o bilanciata). Costo della singola union e costo di una sequenza di al più n 1 union (dove n è il numero delle operazioni makeset eseguite). 25 Lezione del 27 maggio 2005 (2h) Manipolazione di insiemi disgiunti Euristica del bilanciamento per strutture di tipo quick find. Problemi legati all implementazione e presentazione di una struttura dati che consente di migliorare la complessità di una sequenza di operazioni di unione (analisi ammortizzata). Euristica del bilanciamento in altezza (o union by rank) per strutture di tipo quick union. Implicazioni sul costo della singola operazione find (da O(n) a O(log n)). 10

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Camil Demetrescu Irene Finocchi Giuseppe F. Italiano Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Indice 1 Un introduzione informale agli algoritmi 1 2 Modelli di calcolo e metodologie di

Dettagli

UNIVERSITA DEGLI STUDI DI PERUGIA

UNIVERSITA DEGLI STUDI DI PERUGIA UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze

Dettagli

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica Dispense per i corsi di Informatica generale Corso di laurea in Matematica e Introduzione agli Algoritmi Corso di laurea in Informatica Prof. Tiziana Calamoneri Prof. Giancarlo Bongiovanni Questi appunti

Dettagli

ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15

ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15 ANNO ACCADEMICO 2014/15 1 a prova in itinere 13 gennaio 2015 ESERCIZIO 1 Si risolva l equazione di ricorrenza al variare del parametro reale a>1. T (n) = 27 n a T + n 2 log n a ESERCIZIO 2 Si ordinino

Dettagli

Algoritmi e Strutture dati a.a. 2013/2014

Algoritmi e Strutture dati a.a. 2013/2014 a.a. 2013/2014 Dr Informazioni docente E-mail docente: fdrmra@unife.it Ricevimento: Mercoledì 15:00-16:00 presso ufficio docenti a contratto (3 piano), Dipartimento di Matematica e Informatica, Campus

Dettagli

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica Dispense per i corsi di Informatica generale Corso di laurea in Matematica e Introduzione agli Algoritmi Corso di laurea in Informatica Prof. Tiziana Calamoneri Prof. Giancarlo Bongiovanni Questi appunti

Dettagli

ALGORITMI E LABORATORIO

ALGORITMI E LABORATORIO DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2016/2017-2 anno E 9 CFU - 1 semestre Docenti titolari dell'insegnamento DOMENICO CANTONE - Modulo - INF/01-6 CFU

Dettagli

Algoritmi e Strutture dati a.a. 2012/2013

Algoritmi e Strutture dati a.a. 2012/2013 a.a. 2012/2013 Dr Informazioni docente E-mail docente: maria.federico@unimore.it Ricevimento: Su appuntamento (inviare e-mail) 2 Informazioni lezioni Lunedì, Martedì, Mercoledì 10:30-13:30 aula INFO2 15

Dettagli

Fondamenti teorici e programmazione

Fondamenti teorici e programmazione Fondamenti teorici e programmazione FTP(A) - modb Lezione 9 di ricerca binaria F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 liberi Un albero libero è un

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati A.A. 15/16 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Contatti Studio: stanza 513, V piano DIB Telefono: 080 544 2297 email: nicola.dimauro@di.uniba.it

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Dijkstra (*) (ACM in grafi diretti e non diretti senza archi di peso negativo) Punto della situazione Algoritmo basato sull ordinamento

Dettagli

Ricordo che è ammesso alla prova scritta solo chi ha già consegnato ed avuto approvato il progetto.

Ricordo che è ammesso alla prova scritta solo chi ha già consegnato ed avuto approvato il progetto. Ricordo che è ammesso alla prova scritta solo chi ha già consegnato ed avuto approvato il progetto. NON CORREGGERÒ il compito a chi non ha consegnato il progetto Esercizio 1 (possibili più risposte esatte

Dettagli

Alcuni luoghi comuni sull informatica e sull informatico

Alcuni luoghi comuni sull informatica e sull informatico Alcuni luoghi comuni sull informatica e sull informatico 1. Informatica = Computer 2. Informatico = Programmatore Quindi: per fare l informatico basta solo un po di pratica! Informatica = Computer? «Computer

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al corso di Algoritmi e Strutture Dati Luigi Pontieri Il nome del corso: Algoritmi e Strutture Dati Algoritmo: metodo per la risoluzione di problemi di elaborazione di informazioni, espresso

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al Corso Emanuela Merelli Università di Camerino 23 ottobre 2017 Struttura del corso Il corso consiste di 42 ore di lezione 2 ore di ricevimento settimanali Il corso viene valutato in 6 CFU

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 3 Cammini minimi: algoritmo di Dijkstra Cammini minimi in grafi: cammini minimi a singola sorgente (senza pesi negativi) Cammini minimi in grafi pesati Sia G=(V,E,w)

Dettagli

Problemi di ordinamento

Problemi di ordinamento Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata

Dettagli

Università Roma Tre - PAS Classe A048 "Matematica Applicata" - Corso di Informatica a.a. 2013/2014

Università Roma Tre - PAS Classe A048 Matematica Applicata - Corso di Informatica a.a. 2013/2014 Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A08 Matematica Applicata Corso di Informatica Algoritmi su Grafi Marco Liverani (liverani@mat.uniroma.it) Sommario

Dettagli

T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008

T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008 A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Risolvere con almeno due metodi diversi la seguente relazione di ricorrenza T = T n = T n n log n A.A. 00 0 Esame di Algoritmi

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica Modulo di Laboratorio di Algoritmi e Strutture Dati Alberi binari Giovanna Melideo melideo@di.univaq.it 1 Alberi

Dettagli

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo: PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Cognome................................ Nome................................... Matricola............................... Algoritmi e Strutture Dati Prova scritta del 24 febbraio 2017 TEMPO DISPONIBILE:

Dettagli

Ordinamenti. Grafo : definizione. Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici

Ordinamenti. Grafo : definizione. Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}

Dettagli

Università degli studi Magna Graecia di Catanzaro

Università degli studi Magna Graecia di Catanzaro Università degli studi Magna Graecia di Catanzaro Corso di laurea in Ingegneria Informatica e Biomedica Corso di Ingegneria del Software A.A. (2002-2003) Docente: Dott. Ing. Pierangelo, Tutor: Ing. A.

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Capitolo 0 - Code con priorità e insiemi disgiunti This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license,

Dettagli

Grafi: definizioni e visite

Grafi: definizioni e visite Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di

Dettagli

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio II: cammini minimi a singola sorgente (per grafi

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un

Dettagli

Appunti lezione Capitolo 13 Programmazione dinamica

Appunti lezione Capitolo 13 Programmazione dinamica Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi

Dettagli

Introduzione alla gestione delle collezioni di oggetti

Introduzione alla gestione delle collezioni di oggetti Introduzione alla gestione delle collezioni di oggetti Alcune tecniche di base Un esempio: l ADT Dizionario (mutabile) Un esempio: l ADT Pila (mutabile) Un esempio: l ADT Coda (mutabile) Tecniche di rappresentazione

Dettagli

Ordinamenti. Vittorio Maniezzo Università di Bologna

Ordinamenti. Vittorio Maniezzo Università di Bologna Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}

Dettagli

Algoritmi. Matricole dispari Prof.ssa Anselmo. Appello straordinario del 17 Aprile Attenzione:

Algoritmi. Matricole dispari Prof.ssa Anselmo. Appello straordinario del 17 Aprile Attenzione: COGNOME: Nome: Algoritmi Matricole dispari Prof.ssa Anselmo Appello straordinario del 17 Aprile 2015 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante. Non voltare la pagina

Dettagli

Alberi. Definizione, realizzazione e algoritmi elementari. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 7

Alberi. Definizione, realizzazione e algoritmi elementari. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 7 Alberi Definizione, realizzazione e algoritmi elementari Cosa sono gli alberi? Strutture gerarchiche di ogni tipo Generale Colonnello 1 Colonnello k Maggiore 1,1 Maggiore 1,m Capitano Maggiore k,1 Maggiore

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare alfabeticamente lista di nomi, o insieme

Dettagli

Appunti di Ricerca Operativa

Appunti di Ricerca Operativa Appunti di Ricerca Operativa 2012/2013 Prefazione La Ricerca Operativa è un campo in continua evoluzione, il cui impatto sulle realtà aziendali ed organizzative è in costante crescita. L insegnamento di

Dettagli

Spesso sono definite anche le seguenti operazioni:

Spesso sono definite anche le seguenti operazioni: Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE: PIANO DI LAVORO Programmazione Didattica per Competenze Indirizzo Informatica e Telecomunicazioni Articolazione Informatica DOCENTE: ITP: MATERIA: CLASSE: ORE SETTINALI: CANTARELLA ALFREDO NATALE LUIGI

Dettagli

Esercizi per il corso di Algoritmi, anno accademico 2011/12

Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, nè in C++, etc. ). Di tutti gli

Dettagli

Grafi (orientati): cammini minimi

Grafi (orientati): cammini minimi Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra

Dettagli

PROGRAMMA LEZIONI ASD (II SEMESTRE) PROF. CLEMENTI

PROGRAMMA LEZIONI ASD (II SEMESTRE) PROF. CLEMENTI PROGRAMMA LEZIONI ASD 2017-2018 (II SEMESTRE) PROF. CLEMENTI Lezione n. 1 (8-3-18): 9.00-11.00 ( 2.5 ore acc) 1. Introduzione generale al II modulo, modalità dell'esame. 2. Def. del problema dei cammini

Dettagli

Università degli Studi di Camerino Laurea in Informatica Prima Prova Parziale del corso di Algoritmi e Strutture Dati

Università degli Studi di Camerino Laurea in Informatica Prima Prova Parziale del corso di Algoritmi e Strutture Dati Università degli Studi di Camerino Laurea in Informatica Prima Prova Parziale del corso di Algoritmi e Strutture Dati Docente: Maria Rita Di Berardini 19 dicembre 2007 Nome: Cognome: N.Matricola: Note:

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati + Laboratorio: struttura del corso Laboratorio di Introduzione al Corso Maria Rita Di Berardini (Ascoli), Emanuela Merelli (Camerino) 1 1 Dipartimento di Matematica e Informatica Università di Camerino

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi e Strutture Dati Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Algoritmi di ordinamento Esempi: ordinare una lista di nomi alfabeticamente, o

Dettagli

RICERCA OPERATIVA (a.a. 2018/19)

RICERCA OPERATIVA (a.a. 2018/19) Secondo appello //9 RICERCA OPERATIVA (a.a. 8/9) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: min y + y y y y y = y + y y = y, y, y, y Si verifichi se la soluzione ȳ =,,, sia ottima

Dettagli

UNIVERSITÀ DEGLI STUDI DI BERGAMO

UNIVERSITÀ DEGLI STUDI DI BERGAMO UNIVERSITÀ DEGLI STUDI DI BERGAMO DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE E METODI MATEMATICI Corso di Laurea in Ingegneria Informatica Esame di Informatica III B Progettazione e algoritmi a.a. 2011/12

Dettagli

ALGORITMI E COMPLESSITA'

ALGORITMI E COMPLESSITA' DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea magistrale in Informatica Anno accademico 2016/2017-1 anno ALGORITMI E COMPLESSITA' INF/01-9 CFU - 1 semestre Docente titolare dell'insegnamento

Dettagli

Richiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Richiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Richiami di matematica discreta: grafi e alberi Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Grafi Definizione: G = (V,E) V: insieme finito di vertici E: insieme finito di archi,

Dettagli

Grafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi

Grafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi Grafi non orientati Grafi (non orientati) Notazione. G = (V, E) V = nodi (o vertici). E = archi (o lati) tra coppie di nodi. Modella relazioni definite tra coppie di oggetti. aglia di un grafo: numero

Dettagli

Heap scenario. Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero);

Heap scenario. Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero); Heap Heap scenario Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero); Voglio poter: inserire: nuovi elementi, ciascuno con una data priorità

Dettagli

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Tabelle Hash! Presentare le tabelle hash e la nozione di funzione di hashing Discutere la complessità di questa realizzazione per le Tavole

Tabelle Hash! Presentare le tabelle hash e la nozione di funzione di hashing Discutere la complessità di questa realizzazione per le Tavole Tabelle Hash! n Obiettivi: Presentare le tabelle hash e la nozione di funzione di hashing Discutere la complessità di questa realizzazione per le Tavole 1 Tavole! n Una tavola è un tipo di dato astratto

Dettagli

Cammini minimi in grafi:

Cammini minimi in grafi: Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e Strutture Dati Capitolo 2 Minimo albero ricoprente: Algoritmo di Prim Il problema del calcolo di un Minimum

Dettagli

Ordinamento per inserzione e per fusione

Ordinamento per inserzione e per fusione Ordinamento per inserzione e per fusione Alessio Orlandi 15 marzo 2010 Fusione: problema Problema Siano A e B due array di n A e n B interi rispettivamente. Si supponga che A e B siano ordinati in modo

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi

1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi 1 TEORIA DELLE RETI 1 1 Teoria delle reti 1.1 Grafi Intuitivamente un grafo è un insieme finito di punti (nodi o vertici) ed un insieme di frecce (archi) che uniscono coppie di punti Il verso della freccia

Dettagli

Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano. Usa la tecnica del divide et impera:

Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano. Usa la tecnica del divide et impera: MergeSort Usa la tecnica del divide et impera: 1 Divide: dividi l array a metà 2 Risolvi i due sottoproblemi ricorsivamente 3 Impera: fondi le due sottosequenze ordinate 1 Esempio di esecuzione 7 2 4 5

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Esercizio. 2 i=i*2) j=j*2)

Esercizio. 2 i=i*2) j=j*2) Esercizio 1 Esercizio 2 i=i*2) j=j*2) Soluzione Il frammento è composto da due parti quasi identiche. L unica differenza è il modo in cui crescono i contatori. Nella prima parte la crescita è lineare mentre

Dettagli

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 LEZIONE 16: Heap - Codifica di Huffmann Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 Lezione 16 - Modulo 1 Heap e code di priorità Introduzione

Dettagli

Laboratorio di Algoritmi

Laboratorio di Algoritmi Laboratorio di Algoritmi Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Martedì 8.30-10.30 in aula 3 Mercoledì 10.30-13.30 in aula 2 Giovedì 15.30-18.30 in

Dettagli

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) È dato un grafo non orientato G=(V,E). Ad ogni arco e i E, i=1,,m, è associato un costo c i 0 7 14 4 10 9 11 8 12 6 13 5 17 3 2

Dettagli

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Cognome................................ Nome................................... Matricola............................... Algoritmi e Strutture Dati Prova scritta del 4 luglio 207 TEMPO DISPONIBILE: 2 ore

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Capitolo 3 - Tipi di dato e strutture di dati This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license,

Dettagli

Lezioni di Ricerca Operativa

Lezioni di Ricerca Operativa Lezioni di Ricerca Operativa Estratto per la parte di programmazione lineare e ottimizzazione sui grafi Corso di Metodi di Ottimizzazione per l'ingegneria della Sicurezza Laurea Magistrale in Ingegneria

Dettagli

FONDAMENTI DI INFORMATICA - canale 4

FONDAMENTI DI INFORMATICA - canale 4 DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-1 anno FONDAMENTI DI INFORMATICA - canale 4 ING-INF/05-9 CFU - Insegnamento

Dettagli

Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA

Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA Dipartimento di Ingegneria Elettrica, Elettronica e Informatica Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA Docente titolare dell insegnamento: Proff.

Dettagli

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Dettagli

Un esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem

Un esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem Un esempio: l ADT Dizionario (mutabile) Algoritmi e Laboratorio a.a. 2006-07 Lezioni Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Parte 19-D Alberi

Dettagli

Corso di Fondamenti di Informatica e Laboratorio

Corso di Fondamenti di Informatica e Laboratorio Corso di Fondamenti di Informatica e Laboratorio Corsi di Laurea Ingegneria Informatica (O-Z) Corsi di Laurea Ingegneria delle Telecomunicazioni - (A-Z) (ordinamento 03) A.A. 2009-2010 Prof. Giuseppe Mangioni

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Introduzione al corso di Algoritmi e Strutture

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari A: CONOSCENZA E CAPACITA DI COMPRENSIONE Conoscere e saper comprendere i fondamenti della matematica discreta (insiemi, interi, relazioni e funzioni, calcolo combinatorio) Conoscere e saper comprendere

Dettagli

FONDAMENTI DI INFORMATICA - canale 1

FONDAMENTI DI INFORMATICA - canale 1 DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-1 anno FONDAMENTI DI INFORMATICA - canale 1 ING-INF/05-9 CFU - Insegnamento

Dettagli

Algoritmi di Ordinamento

Algoritmi di Ordinamento Algoritmi di Ordinamento 1 Algoritmi di ordinamento Selection Sort Quick Sort Lower bound alla complessità degli algoritmi di ordinamento Statistiche di ordine 2 Selection Sort SelectionSort(dati[]) {

Dettagli

Algoritmi e strutture dati 16 Dicembre 2004 Canali A L e M Z Cognome Nome Matricola

Algoritmi e strutture dati 16 Dicembre 2004 Canali A L e M Z Cognome Nome Matricola Algoritmi e strutture dati 16 Dicembre 04 Canali A L e M Z Cognome Nome Matricola Problema 1 (6 punti) Determinare la funzione calcolata dal metodo mistero e la sua complessità computazionale in funzione

Dettagli

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita Esercitazione 7 Grafi Rappresentazione e algoritmi di visita Grafo G = (V,E) non orientato 1 1 G = (V,E) orientato 6 Rappresentazione Grafo G = (V,E) metodi standard per la rappresentazione Liste di adiacenza

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Capitolo 7 Algoritmi di ordinamento 7.1 Selection sort L algoritmo di ordinamento per selezione opera nel modo seguente: supponiamo che i primi k elementi siano ordinati; l algoritmo sceglie il minimo

Dettagli

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Modelli di calcolo e metodologie di analisi Domenico Fabio Savo 1 Notazione asintotica f(n) = tempo di esecuzione / occupazione di memoria di un algoritmo su input di dimensione

Dettagli

Algoritmi & Laboratorio

Algoritmi & Laboratorio Acknowledgement Lucidi da F. Damiani, a.a. 2004-2005 C. Demetrescu et al, Algoritmi e strutture dati, McGraw-Hill M. Zacchi, a.a. 2003-2004 I lucidi non sono un sostituto per il libro di testo non contengono

Dettagli

Alberi. Cosa sono gli alberi? Strutture gerarchiche di ogni tipo. Definizione, realizzazione e algoritmi elementari. Generale.

Alberi. Cosa sono gli alberi? Strutture gerarchiche di ogni tipo. Definizione, realizzazione e algoritmi elementari. Generale. Alberi Definizione, realizzazione e algoritmi elementari Cosa sono gli alberi? trutture gerarchiche di ogni tipo Generale Colonnello Colonnello k Maggiore, Maggiore,m Capitano Maggiore k, Maggiore k,n

Dettagli

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

Dettagli

Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Le tabelle di hash Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Tabelle di hash Finora gli algoritmi di ricerca si erano basati sul confronto. Eccezione: tabelle

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Quicksort (*) e metodi di ordinamento lineari Punto della situazione Problema dell ordinamento: Lower bound (n log n) Upper bound O(n log n) Algoritmi

Dettagli

Algoritmi e Strutture Dati. HeapSort

Algoritmi e Strutture Dati. HeapSort Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene

Dettagli

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile. Materia: INFORMATICA Classe 1Q Prof.ssa Mazzi Cinzia IL COMPUTER Hardware e software. Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile. Le parti che formano un computer.

Dettagli

Tabelle Hash. Implementazioni Dizionario. Implementazione. Tabelle ad accesso diretto. Tempo richiesto dall operazione più costosa:

Tabelle Hash. Implementazioni Dizionario. Implementazione. Tabelle ad accesso diretto. Tempo richiesto dall operazione più costosa: Algoritmi e Strutture Dati Implementazioni Dizionario Tempo richiesto dall operazione più costosa: Tabelle Hash - Liste - Alberi di ricerca non bilanciati - Alberi di ricerca bilanciati -Tabelle hash O(n)

Dettagli

Progettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 27 Giugno 2018.

Progettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 27 Giugno 2018. COGNOME: Nome: Progettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 27 Giugno 2018 Attenzione: Inserire i propri dati nell apposito spazio soprastante

Dettagli