Differenze tra le versioni di "Algoritmi e strutture dati T2/2006-2007"

Da WikiDsy.
(Diario del corso)
(Giovedì 19 Ottobre)
 
(8 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
 
[[Categoria:Corsi 2006-2007]]
 
[[Categoria:Corsi 2006-2007]]
 
== News ==
 
== News ==
.
+
 
'''Torelli farà lezione anche Lunedì 22 e Mercoledì 24 gennaio)'''
 
 
----
 
----
  
Riga 229: Riga 228:
 
http://utenti.quipo.it/base5/fibonacci/fibonacci.htm,
 
http://utenti.quipo.it/base5/fibonacci/fibonacci.htm,
  
=== Giovedì 19 Ottobre ===
+
yn0n3J  <a href="http://bpxosgzvgfcs.com/">bpxosgzvgfcs</a>, [url=http://dzxnapvhrhug.com/]dzxnapvhrhug[/url], [link=http://ipqzvxjpjlrp.com/]ipqzvxjpjlrp[/link], http://gqekwyuchnpw.com/
'''.''Laboratorio''.'''
 
 
 
Il 26 Ottobre si terrà la prima lezione in laboratorio. Sono state racolti i dati ( nome, cognome e matricola ) per attivare l'utenza di laboratorio
 
 
 
http://homes.dsi.unimi.it/~aguzzoli/algo.htm
 
 
 
*Le stringhe sono array
 
*Elementi lessicali, operatori, espressioni
 
*Dichiarazioni, tipi fondamentali
 
  
 
=== Venerdì 20 Ottobre ===
 
=== Venerdì 20 Ottobre ===
Riga 339: Riga 329:
  
 
    
 
    
NON ERO A LEZIONE!
+
        NON ERO A LEZIONE!
  
 
===Lunedì 13 Novembre ===
 
===Lunedì 13 Novembre ===
Riga 424: Riga 414:
 
**inserimento e Cancellazione di una elemento   
 
**inserimento e Cancellazione di una elemento   
 
*Alberi Binari costruiti a caso
 
*Alberi Binari costruiti a caso
 +
  
 
===Mercoledì 29 Novembre===
 
===Mercoledì 29 Novembre===
Riga 430: Riga 421:
 
*Il linguaggio di Dyck
 
*Il linguaggio di Dyck
 
*Funzioni generatrici di alberi
 
*Funzioni generatrici di alberi
 
+
si nu ricchion
  
 
===Giovedì 30 Novembre===
 
===Giovedì 30 Novembre===
Riga 446: Riga 437:
 
*Passare argomenti a Main
 
*Passare argomenti a Main
 
*Puntatori a funzioni
 
*Puntatori a funzioni
 +
  
 
===Venerdì 1 Dicembre ===
 
===Venerdì 1 Dicembre ===
Riga 453: Riga 445:
 
**propietà
 
**propietà
 
*Accenni agli Alberi rosso neri
 
*Accenni agli Alberi rosso neri
 +
  
 
===Lunedì 4 Dicembre===
 
===Lunedì 4 Dicembre===
Riga 459: Riga 452:
 
**Propietà
 
**Propietà
 
**Operazioni
 
**Operazioni
 +
  
 
===Mercoledì 6 Dicembre ===
 
===Mercoledì 6 Dicembre ===
  
 
  Non ero a lezione
 
  Non ero a lezione
 +
  
 
===Giovedì 7 Dicembre===
 
===Giovedì 7 Dicembre===
  
 
         Festa
 
         Festa
 +
  
 
===Venerdì 8 Dicembre===
 
===Venerdì 8 Dicembre===
  
 
       Festa
 
       Festa
 +
  
 
===Lunedì 11 Dicembre===
 
===Lunedì 11 Dicembre===
Riga 477: Riga 474:
 
**Esempio Catena di Montaggio
 
**Esempio Catena di Montaggio
 
**Edempio prodotto di matrici
 
**Edempio prodotto di matrici
 +
  
 
===Mercoledì 13 Dicembre===
 
===Mercoledì 13 Dicembre===
Riga 484: Riga 482:
 
*Breve introduzione hai problemi NP-COMPLETI
 
*Breve introduzione hai problemi NP-COMPLETI
 
**Problema commesso viaggiatore
 
**Problema commesso viaggiatore
 +
  
 
===Giovedì 14 Dicembre===
 
===Giovedì 14 Dicembre===
Riga 489: Riga 488:
  
 
[http://homes.dsi.unimi.it/~aguzzoli/didattica/algo/e4.zip Esercizi]
 
[http://homes.dsi.unimi.it/~aguzzoli/didattica/algo/e4.zip Esercizi]
 +
  
  
 
===Venerdì 15 Dicembre===
 
===Venerdì 15 Dicembre===
 
         Non ero a lezione
 
         Non ero a lezione
 +
  
 
===Lunedì 18 Dicembre===
 
===Lunedì 18 Dicembre===
Riga 498: Riga 499:
 
*Algoritmi Greedy
 
*Algoritmi Greedy
 
**Esempio Attività
 
**Esempio Attività
 +
  
 
===Mercoledì 20 Dicembre===
 
===Mercoledì 20 Dicembre===
Riga 505: Riga 507:
 
**Restrizioni e Rango
 
**Restrizioni e Rango
 
**I Matroidi in relazione agli algoritmi GREEDY
 
**I Matroidi in relazione agli algoritmi GREEDY
 +
  
 
===Giovedì 21 Dicembre===
 
===Giovedì 21 Dicembre===
Riga 526: Riga 529:
  
 
*Le code
 
*Le code
 +
  
 
===Lunedì 8 Gennaio===
 
===Lunedì 8 Gennaio===
 
*Ancora sui matroidi
 
*Ancora sui matroidi
 +
  
  
Riga 537: Riga 542:
 
**Matrici di adiacenza  
 
**Matrici di adiacenza  
 
**Liste di adiacenza
 
**Liste di adiacenza
 +
  
 
===Giovedì 11 Gennaio===
 
===Giovedì 11 Gennaio===
 
Laboratorio
 
Laboratorio
 
*[http://homes.dsi.unimi.it/~aguzzoli/didattica/algo/e5.zip Esercizi in aula attrezzata]
 
*[http://homes.dsi.unimi.it/~aguzzoli/didattica/algo/e5.zip Esercizi in aula attrezzata]
 +
  
 
===Venerdì 12 Gennaio===
 
===Venerdì 12 Gennaio===
Riga 546: Riga 553:
 
*Strutture Dati per insiemi disgiunti
 
*Strutture Dati per insiemi disgiunti
 
*funzione di ackermann
 
*funzione di ackermann
 +
  
 
===Lunedì 15 Gennaio===
 
===Lunedì 15 Gennaio===
Riga 556: Riga 564:
  
 
ha detto il prof Aguzzoli che la prox lezione di laboratori (Giovedì 18 Gennaio prima finirà il programma)
 
ha detto il prof Aguzzoli che la prox lezione di laboratori (Giovedì 18 Gennaio prima finirà il programma)
 +
  
 
===Mercoledì 17 Gennaio===
 
===Mercoledì 17 Gennaio===
Riga 564: Riga 573:
 
***In ampiezza
 
***In ampiezza
 
***in profondità
 
***in profondità
 +
  
 
===Giovedì 18 Gennaio===
 
===Giovedì 18 Gennaio===
Riga 578: Riga 588:
 
===Venerdì 19 Gennaio===
 
===Venerdì 19 Gennaio===
  
*Algoritmi di visita dei grafi
+
*Alberi Ricoprenti minimi
*Algoritmo di Kruskal
+
 
*Algoritmo di Prim
+
*Gli algoritmi di Kruskal e Prim

Versione attuale delle 10:57, 15 gen 2011

Indice

News



.

Informazioni generali

.

Docenti


Prof. Torelli / Prof. Aguzzoli per il laboratorio.

Corsi di laurea


Modalità d'esame


Orale + Progetto Pagina Ufficiale Modalita' d'esame

N.B

  • Non è possibile sostenere l'orale senza aver già consegnato il progetto
  • il progetto e l'orale devono essere svolti nello stesso appello

Orari e luogo delle lezioni

Lunedì Mercoledì Giovedì(laboratorio) Giovedi (laboratorio) Venerdì
18:30-20:00 Aula 202 (celoria). 20:00-21:30 Aula 202 (celoria). 18:30-19:30 Aula 202. 19:30-21:30 Aula PC settore didattico . 18:30-20:00 Aula 202 (celoria).


Orario di ricevimento studenti

  • Lunedì ore 10 -11 e martedì ore 18 -19, Via Comelico

-

Informazioni specifiche

Sito Ufficale del corso


N.B. Il Prof.Torelli tiene un Diario del corso sul suo sito che è sicuramente è più affidabile di quello che ci sforziamo di tenere sul dsy, riteniamo comunque utile portare avanti questo diario nella speranza che possa esser una risorsa aggiuntiva, non limitandosi a fornire un elenco degli argomenti svolti, ma più in generale fornendo notizie e informazioni sul corso, link e materiale inerente alle lezioni

Sito Ufficiale del laboratorio


Forum dsy Algoritmi

Forum su DSY.IT

Materiale Didattico

Programma del corso

Si può scaricare da qui


TESTI


Testo di riferimento

  • T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli algoritmi e strutture dati 2/ed, McGraw-Hill Italia, 2005 (oppure II edizione in inglese, 2002).



Altri Bibliografia

Testo per il laboratorio:

  • Al Kelley, Ira Pohl, C – Didattica e programmazione, Pearson/Addison-Wesley, 2004 (oppure A Book on C, 4a edizione, in inglese).

Bibliografia di consultazione:

  • M. Torelli, Appunti per il corso di Algoritmi e Strutture Dati, scaricabili da http://homes.dsi.unimi.it/~torelli/note.html
  • A. Bertoni, M. Goldwurm, Progetto e analisi di algoritmi (Dispense del corso di Algoritmi e Strutture Dati), scaricabili da http://homes.dsi.unimi.it/~goldwurm/algo/
  • R. Sedgewick, Algoritmi in C/C++, Addison-Wesley, 1993 (nuova edizione ampliata 2002).
  • A.J. Kfoury, R.N. Moll, M.A. Arbib, A programming approach to computability, Springer, 1982.



Altro materiale consigliato

Video delle lezioni

Le Videolezioni dell'anno accademico 2003/2004 sono disponibili sul sito Virtual Classroom

DISPENSE E LINK UTILI

Dispense prof Goldwurm

dispense Università di Urbino

dispense Università dell' Aquila

Compilatore GCC per Windows

Diario del corso

.

Lunedì 2 Ottobre 2006

  • Introduzione al corso e alle modalità di esame
  • Complessità del problema dell'ordinamento
    • che cosa si intende per complessità di un algoritmo
  • Algoritmo di Counting Sort (altro link utile per capire il counting sort)
  • Introduzione alle notazioni asintotiche O , Θ e Ω


Mercoledì 4 Ottobre 2006

  • Ripasso Algoritmo Counting Sort - .link utile .per capire il counting sort
  • Il concetto di algoritmo di ordinamento Stabile
  • La complessità di un Algoritmo
  • La complessità di un Problema
  • Confrontare la coplessità di algoritmi
  • Definizione formale delle notazioni asintotiche e relativi esempi

Giovedì 5 Ottobre 2006

.Laboratorio. http://homes.dsi.unimi.it/~aguzzoli/algo.htm

  • Introduzione alla parte di laboratorio del corso
  • Cenni storici sul linguaggio C
  • Caratteristiche generali del C
  • Lo standard ANSI C
  • primo programmino in c (il consueto Ciao Mondo)
  • Il compilatore (useremo Gcc)
  • Le direttive al preprocessore
    • Include
    • i file .h
  • Il concetto di funzione
  • Opzioni di Gcc
    • -ansi , -pedantic , -wall

Venerdì 6 Ottobre 2006

  • Analisi degli algoritmi (cap 2.2)
  • Analisi di Counting Sort

Lunedì 9 Ottobre

Mercoledì 11 Ottobre

  • Insertion Sort
  • Il concetto di ordinamento in loco
  • Gli Algoritmi Divide et Impera
  • Merge Sort
    • Esempi di merge sort con figure
    • Pseudocodice Merge Sort

Giovedì 12 Ottobre

.Laboratorio. http://homes.dsi.unimi.it/~aguzzoli/algo.htm

  • riassunto della Prima lezione
  • printf
    • Opzioni di printf
  • altri semplici programmini di esempio
  • C ed il passaggio per valore
  • L'utility make
  • introduzione ai puntatori
  • Bubble sort
  • Introduzione agli Array in C

Venerdì 13 Ottobre

  • Merge Sort: Albero delle chiamate ricorsive
  • Notazioni standard e funzioni comuni:
    • Funzione Floor
    • Funzione Ceiling
    • Funzione Monotone
    • Fattoriale
    • Formula di Stirling
    • Piccolo Teorema di Fermat
  • Ricorsione e Iterazione

Lunedì 16 Ottobre

  • Cap. 3.2 NOTAZIONI STANDARD E FUNZIONI COMUNI
    • Funzioni Monotone
    • Floor e ceiling
    • Aritmetica modulare
    • Polinomi
    • Esponenziali
    • Logaritmi
    • Fattoriali
    • Iterazione di una funzione
  • Ricorsione o ricorrenza
  • teorema di Fermat
  • Il classico (1202!) problema dei conigli

Mercoledì 18 Ottobre

  • Cap. 4 Ricorrenze
    • Il metodo di sostituzione
    • Il metodo dell’albero di ricorsione
    • Il metodo dell’esperto


  • (Il metodo iterativo (CENNI))
  • Il classico (1202!) problema dei conigli (soluzione)

http://utenti.quipo.it/base5/fibonacci/fibonacci.htm,

yn0n3J <a href="http://bpxosgzvgfcs.com/">bpxosgzvgfcs</a>, [url=http://dzxnapvhrhug.com/]dzxnapvhrhug[/url], [link=http://ipqzvxjpjlrp.com/]ipqzvxjpjlrp[/link], http://gqekwyuchnpw.com/

Venerdì 20 Ottobre

come nella scorsa lezione

  • Cap. 4 Ricorrenze
    • Il metodo di sostituzione
    • Il metodo dell’albero di ricorsione
    • Il metodo dell’esperto

Esempi di utilizzo dei 3 metodi su la ricorsione

Lunedì 23 Ottobre

  • Ancora ricorsione
  • Numeri di Fibonacci
  • La formula di Eulero-Binet

Mercoledì 25 Ottobre

  • la formula di Eulero - Binet
  • nozioni di insiemistica(unione,intersezione....relazioni)
  • Accenno ai linguaggi

Giovedì 26 Ottobre

.Laboratorio.

  • Svolti esercizi in aula attrezzata

http://homes.dsi.unimi.it/~aguzzoli/didattica/algo/e1.zip

Venerdì 27 Ottobre

Dispense usate per questa lezione

  • Grafi e Alberi come Linguaggi
    • Grafi Orientati
    • Grafi non orientati
  • Alberi


Lunedì 30 Ottobre

  • I Grafi come linguaggi
    • Grafi Orientati
    • Grafi Non orientati
    • Cammini e Cicli
    • Lemma di Eliminazione dei cicli
    • Il concetto di Grado di un vertice
    • Grafi connessi
    • sottografi
  • Alberi Binari
  • Alberi k-Ari
  • Alberi Completi a sx.
  • alberi pienamente Binari
  • Heap

Mercoledì 1 Novembre

Festa

Giovedì 2 Novembre

.Laboratorio.

  • Inuput ed Output con getchar e putchar
  • Input ed Output su file
  • Operatori logici
  • Controllo del flusso
    • If - Else
    • for
    • While
    • Do-While
    • Break
    • Continue
    • Switch
  • Funzioni e stack
  • Protottipi di funzione


Venerdì 3 Novembre

Lunedì 6 Novembre

  • Heap
    • Heap Sort
    • Analisi dei costi di Heapsort
  • Quick Sort
    • Analisi dei costi di Quick Sort

Mercoledì 8 Novembre

Giovedì 9 Novembre

.Laboratorio.

  • Svolti esercizi in aula attrezzata

http://homes.dsi.unimi.it/~aguzzoli/didattica/algo/e2.zip

Venerdì 10 Novembre

       NON ERO A LEZIONE!

Lunedì 13 Novembre

  • Ordinamento in tempo lineare
  • Limite inferiore per il problema dell'ordinamento
    • Albero delle decisioni per dimostrare il limite inferiore del problema dell'rdinamento
  • L'algoritmo di Strassen (dalle dispese)

Mercoledì 15 Novembre

  • Hash
  • Tabelle Hash

Giovedì 16 Novembre

  • Laboratorio
  • Classi di memorizzazione
    • auto
    • extern
    • register
    • static
  • RICORSIONE
    • Efficenza nella ricorsione
  • Backtracking
    • Esempio Il gioco del cavallo
  • Array
  • Puntatori
  • Aritmetica dei Puntatori

Venerdì 17 Novembre

  • Strutture Dati Elementari
    • Stack
      • Operazioni su lo stack
    • Code
      • Operazioni su le code
    • Liste


Lunedì 20 Novembre

  • Numeri di Matula

Mercoledì 22 Novembre

  • Ripasso Alberi
  • Hash
    • Tabelle Hash
    • Funzioni Hash
    • Il metodo della divisione
    • Il metodo della moltiplicazione
    • Hashing Universale
    • Hashing Perfetto

Giovedì 23 Novembre

  • Laboratorio
  • Svolti esercizi in aula PC

http://homes.dsi.unimi.it/~aguzzoli/didattica/algo/e3.zip


Venerdì 24 Novembre

  • Ancora Hashing
    • Analisi dell hashing con concatenamento
    • Metodo Divisione e Moltiplicazione
    • Indirizzamento Aperto
    • Il Doppio Hashing


Lunedì 27 Novembre

  • Alberi Binari
  • Alberi Binari di ricerca
  • Visita di Alberi
    • In Ordine
    • In Pre-Ordine
    • In Poost-Ordine
  • Propietà Alberi Binari di ricerca
    • Ricerca del Minimo e del Max
    • predecessore e successore
    • inserimento e Cancellazione di una elemento
  • Alberi Binari costruiti a caso


Mercoledì 29 Novembre

  • Ripasso lezione precedente (visite alberi, max-min,successore predecessore..)
  • Il linguaggio di Dyck
  • Funzioni generatrici di alberi

si nu ricchion

Giovedì 30 Novembre

Laboratorio

  • Arirmetica dei puntatori
  • Allocazione Dinamica della Memoria
    • Malloc
    • Calloc
    • Free
    • Esempio MergeSort
  • Manipolazione delle stringhe
  • Array Multidimensionali
  • Passare argomenti a Main
  • Puntatori a funzioni


Venerdì 1 Dicembre

  • I B-alberi
    • Operazioni su alberi B-ari
    • propietà
  • Accenni agli Alberi rosso neri


Lunedì 4 Dicembre

  • Gli Alberi Rosso-Neri
    • Propietà
    • Operazioni


Mercoledì 6 Dicembre

Non ero a lezione


Giovedì 7 Dicembre

        Festa


Venerdì 8 Dicembre

      Festa


Lunedì 11 Dicembre

  • Programmazione Dinamica
    • Esempio Catena di Montaggio
    • Edempio prodotto di matrici


Mercoledì 13 Dicembre

  • Programmazione Dinamica
  • Dimostrazione soluzione ottima
  • Breve introduzione hai problemi NP-COMPLETI
    • Problema commesso viaggiatore


Giovedì 14 Dicembre

Laboratorio

Esercizi


Venerdì 15 Dicembre

       Non ero a lezione


Lunedì 18 Dicembre

  • Algoritmi Greedy
    • Esempio Attività


Mercoledì 20 Dicembre

  • I Matroidi (Appunti Torelli)
    • Sistema d'indipendenza
    • Restrizioni e Rango
    • I Matroidi in relazione agli algoritmi GREEDY


Giovedì 21 Dicembre

Laboratorio

  • Strutture - struct
  • Unioni
  • Typedef
  • Stack (questa volta realizzato con memoria dinamica)
  • Liste concatenate
    • operazioni sulle liste
  • Liste Dopiamente Concatenate
    • Modifica delle operazioni
  • Liste con la sentinella
  • Le code


Lunedì 8 Gennaio

  • Ancora sui matroidi


Mercoledì 10 Gennaio

  • Analisi Ammortizzata
    • metodo del contabile
  • Rapresentazione dei grafi
    • Matrici di adiacenza
    • Liste di adiacenza


Giovedì 11 Gennaio

Laboratorio


Venerdì 12 Gennaio

  • Analisi ammortizzata
  • Strutture Dati per insiemi disgiunti
  • funzione di ackermann


Lunedì 15 Gennaio

Lezione di laboratorio

  • Le strutture dati nel C
  • Gli alberi
    • Alberi Binari
    • Alberi di ricerca

ha detto il prof Aguzzoli che la prox lezione di laboratori (Giovedì 18 Gennaio prima finirà il programma)


Mercoledì 17 Gennaio

  • ha ripreso la funzione di Ackermann
  • Funzioni Ricorsive primitive
  • ha iniziato il capitolo di Algoritmi per grafi
    • Algoritmi di visita di un grafo
      • In ampiezza
      • in profondità


Giovedì 18 Gennaio

Lezione di laboratorio

Prima parte finite dispense C

  • Gli Alberi
  • Alberi Bilanciati
    • Alberi Rosso-Neri in c

Esercizi


Venerdì 19 Gennaio

  • Alberi Ricoprenti minimi
  • Gli algoritmi di Kruskal e Prim