Algoritmi e Strutture Dati Laurea in Informatica Calendario: 2 Marzo – 12 Giugno Aula: LuM250 Orario: Mer, Gio, Ven 15.30-17.30 Numero crediti = 8 (~ 64.

Slides:



Advertisements
Presentazioni simili
Laura CAROSI Lezioni Francesca SALVI Esercitazioni
Advertisements

Tecniche e Linguaggi di Programmazione
Elementi di complessità
Algoritmi e Strutture Dati
Problema dellordinamento Input: Sequenza di n numeri Output: Permutazione π = tale che: a 1 a 2 …… a n Subroutine in molti problemi E possibile effettuare.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
18/10/2004Programmazione e Laboratorio di Programmazione – Luca Tesei1 Programmazione e Laboratorio 2004/05 Informazioni Introduttive.
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Presentazione del corso Alberto Polzonetti
Informazioni sul Corso
1 SPEGNETE GRAZIE. 2 MATEMATICA (A-L) a.a Numero di crediti :8 Docente:Prof. Gianni Ricci Periodo di svolgimento del corso: primo semestre.
Facoltà di Psicologia a.a.2011/2012 A cura di Tiziana Fusaro e Lucia Marchesi Guida pratica per gli studenti.
Sommatorie Proprietà Serie aritmetica Serie geometrica Serie armonica
Sistemi di Supporto alle Decisioni
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati con Laboratorio (Modulo I)
Elementi di Algoritmi e Strutture Dati
Informatica A (informatica grafica) Allievi di Ingegneria Civile, L-Z
Note organizzative per il corso di Laboratorio di tecniche computazionali Annarita Margiotta.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Università degli.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Introduzione. Gli argomenti di oggi Analisi della bontà degli algoritmi Modello Computazionale Tempo di esecuzione degli algoritmi.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Tecnologia dei Servizi Grid e cloud computing - Lezione Lezione ottobre 2009 Il materiale didattico usato in questo corso è stato mutuato.
1 Informazioni generali r Stefano Leonardi m Tel.: m URL: / r Ricevimento:
06/10/2009Basi di dati , presentazione1 Basi di dati (ordinamento DM 509/1999) Basi di dati I (ordinamento DM 270/2004) DocentePaolo.
04/10/2010Basi di dati , presentazione1 Basi di dati I (ordinamento DM 270/2004) già Basi di dati (ordinamento DM 509/1999) DocentePaolo.
Algoritmi e Strutture Dati
Corso di Laurea Magistrale in EDITORIA E GIORNALISMO
Obiettivi del corso Programmazione Corso di laurea in Informatica.
Corso di Laurea in INGEGNERIA MECCANICA
Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione.
Corso di Laurea in Ingegneria Informatica
Corso di Fondamenti di Informatica A Andrea Omicini Anno accademico 1999/2000 Università degli Studi di Bologna Facoltà di Ingegneria Corsi di Laurea in.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Bioinformatica Per la laurea triennale in: Biologia Umana
Sociologia del Terzo Settore
Algoritmi e Strutture Dati 8 crediti Calendario: 1 Ott. – 6 Dic. Aula: LuM250 Orario: Lun, Mar, Mer, Gio Giorni di lezione disponibili 40 ~48.
CONOSCENZE INFORMATICHE
Introduzione agli algoritmi e strutture dati 3/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2010 – The McGraw-Hill Companies srl.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e linguaggi per bioinformatica – MODULO ALGORITMI (2010/2011) Laurea magistrale in Bioinformatica e biotecnologie mediche.
Docente: Dott. Stefano Bonnini
Algoritmi e Strutture dati a.a. 2013/2014 Informazioni sul corso
Algoritmi e Strutture dati a.a. 2012/2013 Informazioni sul corso Dr Maria Federico.
Tecnologie di InternetFondamenti di Linguaggi di Markup Dott. Nicola Dragoni Introduzione a e ai (Fondamenti di Markup Languages)
Università degli Studi dell’Aquila
A LGORITMI DI ORDINAMENTO Cinzia Reverberi. COS’È UN ALGORITMO? Un algoritmo è un insieme ben ordinato di operazioni non ambigue ed effettivamente calcolabili.
ALGORITMI Un algoritmo è un insieme di istruzioni: -ordinate -non ambigue -effettivamente computabili.
Corso di didattica della matematica
Ugo de'Liguoro - Informatica 2 - Introduzione Informatica 2 Introduzione al corso a.a. 2003/04.
1 Laboratorio di Introduzione alla Programmazione-Informazioni §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Complessità del problema Se non facciamo ipotesi sul tipo degli elementi della sequenza le uniche operazioni permesse sono confronti e assegnazioni. Problema.
Realtà Virtuale e Computer Animation
Algoritmi e Strutture Dati Introduzione agli algoritmi
Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl.
1 LABORATORIO DI INFORMATICA Ingegneria Informatica Dott. Giorgio Cicerchia a.a ° Ciclo.
DATA MINING PER IL MARKETING
Definizione di algoritmo: Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile.
University of Perugia Corso di Laurea Magistrale Interclasse in Ingegneria Elettronica e delle Telecomunicazioni Corso di Laurea Magistrale in Ingegneria.
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Psicologia della Comunicazione
Copyright, 1996 © Dale Carnegie & Associates, Inc. Fondamenti di Informatica Prof. Livio Colussi Ufficio: via Belzoni 7, I piano Indirizzo
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Sesta giornata Risolvere efficientemente un problema in P: Il problema dell’ordinamento: Insertion.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Università degli.
Analisi 1.
Transcript della presentazione:

Algoritmi e Strutture Dati Laurea in Informatica Calendario: 2 Marzo – 12 Giugno Aula: LuM250 Orario: Mer, Gio, Ven Numero crediti = 8 (~ 64 ore) ~ 48 ore di teoria, ~16 ore di esercizi Docenti: Paolo Baldan (7 crediti) Livio Colussi (1 credito)

a.Prova scritta (5 appelli - indispensabile iscriversi nella lista di esame che verrà attivata su UNIWEB) b.Registrazione, con possibile colloquio (discussione dello scritto con qualche domanda di teoria) Modalità d’Esame

Testo: Introduzione agli Algoritmi e Strutture Dati (3° ed). T.H.Cormen, C.E.Leiserson, R.L.Rivest, C.Stein. McGraw-Hill. Pagina del corso con altro materiale (note, link, ecc.: Trad. di: Introduction to Algorithms and Data Structures (3° ed). T.H.Cormen, C.E.Leiserson, R.L.Rivest, C.Stein. MIT Press. Materiale didattico

Programma Le prime 5 parti del testo (con qualche omissione): I.Fondamenti: notazione per gli algoritmi e primi esempi di algoritmi e di analisi degli algoritmi II.Ordinamento e statistiche d’ordine III.Strutture dati fondamentali IV.Tecniche avanzate di progettazione ed analisi degli algoritmi V.Strutture dati avanzate

I problemi computazionali, gli algoritmi che li risolvono e le tecniche per sviluppare tali algoritmi INTRODUZIONE Esempio1: problema dell’ordinamento Input: a 1,a 2,...,a n Output: a' 1,a' 2,...,a' n permutazione (riarrangiamento) di a 1,a 2,...,a n tale che a' 1  a' 2 ...  a' n

TECNICA INCREMENTALE

Soluzione1: Algoritmo Insertion-Sort. InsertionSort 1 n A 1 n A 1 n j A key 1 n j A i 1 n j A j 1 n A j 1 n j A i 1 n j A i

Insertion-Sort(A) n = A.length for j = 2 to n key = A[j] // inseriamo A[j] nella sequenza // ordinata A[1..j-1] i = j - 1 while i > 0 and A[i] > key A[i+1] = A[i] i = i – 1 A[i+1] = key

Insertion-Sort(A) n = A.length for j = 2 to n key = A[j] // inseriamo A[j] nella // sequenza ordinata // A[1..j-1] i = j – 1 while i > 0 and A[i] > key A[i+1] = A[i] i = i – 1 A[i+1] = key void Insertion-Sort(vector A) { int i, j, n = A.size(); T key; for (j = 1; j < n; j++) { key = A[j]; // inseriamo A[j] nella // sequenza ordinata // A[0..j-1] i = j – 1; while (i >= 0 && A[i] > key) { A[i+1] = A[i]; i--; } A[i+1] = key; } }

Insertion-Sort(A) n = A.length for j = 2 to n // inserisce A[j] nella // sequenza ordinata // A[1..j-1] key = A[j] i = j – 1 while i > 0 and A[i] > key A[i+1] = A[i] i = i – 1 A[i+1] = key A key 5 # # # # # # #

Insertion-Sort(A) n = A.lenght for j = 2 to n // inserisce A[j] nella // sequenza ordinata // A[1..j-1] key = A[j] i = j – 1 while i > 0 and A[i] > key A[i+1] = A[i] i = i – 1 A[i+1] = key A key # # # # # #

Insertion-Sort(A) n = A.length for j = 2 to n key = A[j] i = j - 1 while i > 0 and A[i] > key A[i+1] = A[i] i = i – 1 A[i+1] = key Analisi di Insertion-Sort: correttezza Correttezza InsertionSort 1n j A i 1 n j A 1n j A i 1n j A i1 n j A

Analisi di Insertion-Sort: complessità Insertion-Sort(A)// n = A.length // for j = 2 to n // key = A[j] // i = j -1 // while i > 0 and A[i] > key// A[i+1] = A[i] // i = i – 1// A[i+1] = key//

caso migliore:

caso peggiore:

caso medio: