Algoritmi e Strutture Dati 8 crediti Calendario: 1 Ott. – 6 Dic. Aula: LuM250 Orario: Lun, Mar, Mer, Gio 15.30-17.30 Giorni di lezione disponibili 40 ~48.

Slides:



Advertisements
Presentazioni simili
Guida pratica per gli studenti
Advertisements

Laura CAROSI Lezioni Francesca SALVI Esercitazioni
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.
                      Insertion-Sort
Facoltà di Psicologia a.a.2011/2012 A cura di Tiziana Fusaro e Lucia Marchesi Guida pratica per gli studenti.
Valutazione del corso Schede da riempire in modo anonimo ANNO ACCADEMICO 2009/2010.
Misura della lunghezza focale di una lente Metodo dei punti coniugati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
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
Programmazione II Marco Ronchetti
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.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento 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.
Valutazione del corso Schede da riempire in modo anonimo.
Algoritmi e Strutture Dati III. Algoritmi di Ordinamento
Progetto di algoritmi: metodologia "Divide et Impera"
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
Lezione 0 22 FEBBRAIO Destinatari del corso Studenti di terzo anno : lingue e culture per il turismo e il commercio internazionale curr CINT Prosecuzione.
PRESENTAZIONE DEL CORSO A.A – febbraio 2010 BENVENUTI !!
Obiettivo esame Lessere in tanti e diversi ci arrichisce di esperienze ma ci crea anche qualche problema che possiamo forse risolvere adottando alcuni.
Obiettivi del corso Programmazione Corso di laurea in Informatica.
Lalgoritmo MergeSort Applica la strategia del divide et impera Divide: suddivide la sequenza di n elementi data in due sottosequenze di n/2 elementi Impera:
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.
Sociologia del Terzo Settore
Ordinamento dell’array
Radix-Sort(A,d) // A[i] = cd...c2c1
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.
28 ottobre Mergesort F. Bombi 28 ottobre 2003.
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.
Teoria degli algoritmi e della computabilità Terza giornata: Ricerca e ordinamento ottimi. P vs NP, algoritmi di approssimazione, e il potere della randomizzazione.
Algoritmi di Ordinamento
Algoritmi CHE COS’è UN ALGORITMO di ORDINAMENTO?
ALGORITMI Un algoritmo è un insieme di istruzioni: -ordinate -non ambigue -effettivamente computabili.
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.
Algoritmi e Strutture Dati Laurea in Informatica Calendario: 2 Marzo – 12 Giugno Aula: LuM250 Orario: Mer, Gio, Ven Numero crediti = 8 (~ 64.
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.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
1 LABORATORIO DI INFORMATICA Ingegneria Informatica Dott. Giorgio Cicerchia a.a ° Ciclo.
Definizione di algoritmo: Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile.
TECNICA DIVIDE ET IMPERA
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
Notizie utili sul corso di Economia politica
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Sesta giornata Risolvere efficientemente un problema in P: Il problema dell’ordinamento: Insertion.
Analisi 1.
Transcript della presentazione:

Algoritmi e Strutture Dati 8 crediti Calendario: 1 Ott. – 6 Dic. Aula: LuM250 Orario: Lun, Mar, Mer, Gio Giorni di lezione disponibili 40 ~48 ore di teoria, ~18 ore di esercizi e 4 ore per le prove parziali I sessione esami: Dic 9-20 Gen 7-11

a.5 scritti (+ 2 compitini: uno a metà del corso ed uno a fine corso o assieme al primo appello). Indispensabile iscriversi nella lista di esame che verrà attivata su UNIWEB. b.Colloquio e registrazione: principalmente discussione dello scritto con qualche domanda di teoria. c.Si è ammessi al colloquio con almeno 17/30 come voto dello scritto.

Testo: Introduzione agli Algoritmi e Strutture Dati (terza edizione). T.H.Cormen, C.E.Leiserson, R.L.Rivest, C.Stein. McGraw-Hill. Altro materiale didattico verrà messo nel sito: oppure la versione inglese: Introduction to Algorithms and Data Structures (terza edizione). T.H.Cormen, C.E.Leiserson, R.L.Rivest, C.Stein. MIT Press.

Programma Le prime 5 parti del testo (con poche omissioni): I.Fondamenti: notazione per gli algoritmi e primi esempi di algoritmi e di analisi degli algoritmi II.Ordinamento e statistiche dordine 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 dellordinamento 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:

TECNICA DIVIDE ET IMPERA

Soluzione2: Algoritmo Merge-Sort