Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Estendere i linguaggi: i tipi di dato astratti
File System Cos’è un File System File e Directory
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Algoritmi e Strutture Dati
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Alberi binari di ricerca
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Cammini minimi con sorgente singola
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
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.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Esercizi su alberi binari
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Interrogazioni.
Il problema del dizionario
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 8 Code con.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Algoritmi e Strutture Dati
Visite di grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati III. Algoritmi di Ordinamento
Algoritmi e Strutture Dati
Heap binari e HeapSort.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati Strutture Dati Elementari.
Capitolo 11 Visite di grafi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Progettare algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Prim Algoritmi e Strutture.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Transcript della presentazione:

Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano

Algoritmi e strutture dati 2 Ordinamento Insertion Sort A[1,...,n] = vettore i,j,key = variabili Numeri ordinati n numeri

Algoritmi e strutture dati 3 Problema Algoritmo Strutture Dati OutputInput

Algoritmi e strutture dati 4 Strutture Dati Astratte DATI + OPERAZIONI Che cosa DATI OP 1 OP 2 OP n ……………

Algoritmi e strutture dati 5 Insertion Sort Insertion-sort(A) 1.for j=2 to size(A) 2.do key = read(j) 3. {insert A[j] in A[1,...,j-1]} 4. i = j-1 5. while i>0 and read(i)>key 6.do modify(i+1,read(i)) 7. i=i-1 8. modify(i+1,key)

Algoritmi e strutture dati 6 Esempio di ADS Dati = insieme S di numeri OP 1 = estrai il minimo OP 2 = estrai il massimo OP 3 = restituisci la dimensione di S OP 4 = inserisci un nuovo numero in S

Algoritmi e strutture dati 7 Insertion sort ADS = DS = Insieme S di numeri + Read, Size, Modify S=A[1,…,n] (vettore) Read(i)=A[i] Size(A)=n Modify(i,x)=A[i]=x

Algoritmi e strutture dati 8 ADS = che cosa vogliamo ? DS = come lo implementiamo ?

Algoritmi e strutture dati 9 Quando una struttura dati è buona ? Una DS è buona quando non usa troppe risorse. Risorse Tempo Spazio di memoria Numero di procesori...

Algoritmi e strutture dati 10 Dato Dato è tutto ciò su cui agisce un calcolatore A livello hardware tutti i dati sono rappresentati come sequenza di cifre binarie Linguaggi ad alto livello ci permettono di usare astrazioni tramite il concetto di tipo di dato

Algoritmi e strutture dati 11 Tipo di Dato Nei linguaggi di programmazione 1.il tipo di dato determina linsieme dei valori (oggetti) che una variabile può rappresentare 2.il tipo di dato, specifica le operazioni di interesse su un insieme di valori (o collezione di oggetti (es. inserisci, cancella, cerca, etc.)) ogni operatore accetta argomenti di uno o più tipi di dato fissato e produce risultati di un tipo di dato fissato

Algoritmi e strutture dati 12 Gestione di collezioni di oggetti Struttura dati: –Organizzazione dei dati che permette di supportare le operazioni di un tipo di dato in modo efficiente

Algoritmi e strutture dati 13 Il tipo di dato Dizionario

Algoritmi e strutture dati 14 Il tipo di dato Pila

Algoritmi e strutture dati 15 Il tipo di dato Coda

Algoritmi e strutture dati 16 Tecniche di rappresentazione dei dati Rappresentazioni indicizzate: –I dati sono contenuti in array Rappresentazioni collegate: –I dati sono contenuti in record collegati fra loro mediante puntatori

Algoritmi e strutture dati 17 Pro e contro Rappresentazioni indicizzate: –Pro: accesso diretto ai dati mediante indici –Contro: dimensione fissa (riallocazione array richiede tempo lineare) Rappresentazioni collegate: –Pro: dimensione variabile (aggiunta e rimozione record in tempo costante) –Contro: accesso sequenziale ai dati

Algoritmi e strutture dati 18 Esempi di strutture collegate Lista semplice Lista doppiamente collegata Lista circolare doppiamente collegata

Algoritmi e strutture dati 19 Alberi Organizzazione gerarchica dei dati Dati contenuti nei nodi, relazioni gerarchiche definite dagli archi che li collegano

Algoritmi e strutture dati 20 Rappresentazioni collegate di alberi Rappresentazione con puntatori ai figli (nodi con numero limitato di figli) Rappresentazione con liste di puntatori ai figli (nodi con numero arbitrario di figli)

Algoritmi e strutture dati 21 Rappresentazioni collegate di alberi cont. Rappresentazione con primo figlio- fratello successivo (nodi con numero arbitrario di figli)

Algoritmi e strutture dati 22 Visite di alberi Algoritmi che consentono laccesso sistematico ai nodi e agli archi di un albero Gli algoritmi di visita si distinguono in base al particolare ordine di accesso ai nodi

Algoritmi e strutture dati 23 Algoritmo di visita generica visitaGenerica visita il nodo r e tutti i suoi discendenti in un albero Richiede tempo O(n) per visitare un albero con n nodi a partire dalla radice

Algoritmi e strutture dati 24 Algoritmo di visita in profondità Lalgoritmo di visita in profondità (DFS) parte da r e procede visitando nodi di figlio in figlio fino a raggiungere una foglia. Retrocede poi al primo antenato che ha ancora figli non visitati (se esiste) e ripete il procedimento a partire da uno di quei figli.

Algoritmi e strutture dati 25 Algoritmo di visita in profondità Versione iterativa (per alberi binari):

Algoritmi e strutture dati 26 Algoritmo di visita in profondità Versione ricorsiva (per alberi binari):

Algoritmi e strutture dati 27 Algoritmo di visita in ampiezza Lalgoritmo di visita in ampiezza (BFS) parte da r e procede visitando nodi per livelli successivi. Un nodo sul livello i può essere visitato solo se tutti i nodi sul livello i-1 sono stati visitati.

Algoritmi e strutture dati 28 Algoritmo di visita in ampiezza Versione iterativa (per alberi binari):

Algoritmi e strutture dati 29 Nozione di tipo di dato come specifica delle operazioni su una collezione di oggetti Rappresentazioni indicizzate e collegate di collezioni di dati: pro e contro Organizzazione gerarchica dei dati mediante alberi Rappresentazioni collegate classiche di alberi Algoritmi di esplorazione sistematica dei nodi di un albero (algoritmi di visita) Riepilogo