Alberi binari di ricerca
|
|
|
- Camillo Falcone
- 9 anni fa
- Просмотров:
Транскрипт
1 Alberi binari di ricerca Ilaria Castelli Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
2 Alberi binari di ricerca Definizione Visita dell albero Ricerca Ricerca minimo, massimo, successore Inserimento Ribilanciamento Rimozione I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
3 Alberi binari Remarks: Un albero binario si può rappresentare con una lista concatenata in cui ogni nodo rappresenta un oggetto x, costituito dai seguenti campi: key[x] p[x] left[x] right[x] Se un figlio, oppure il padre è mancante, il corrispondente puntatore contiene nil I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
4 Alberi binari di ricerca Un albero binario di ricerca è un albero binario con le seguenti caratteristiche: nei suoi nodi sono allocati gli elementi di un insieme A, su cui è definito un ordinamento totale se y è un nodo appartenente al sottoalbero sinistro di x, allora key[y] key[x] se y è un nodo appartenente al sottoalbero destro di x, allora key[y] key[x] Tutti gli elementi allocati nel sottoalbero sinistro di x precedono nell ordinamento l elemento allocato in x Tutti gli elementi allocati nel sottoalbero destro di x seguono nell ordinamento l elelemnto allocato in x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
5 Alberi binari di ricerca 5 x y1 y x 5 key[y1] <= key[x] key[y2] >= key[x] y1 4 7 y2 8 Sono entrambi alberi binari di ricerca, ma... qual è più efficiente? I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
6 Visita Inorder INORDER TREE WALK( x ) i f x!= NIL then INORDER TREE WALK( l e f t [ x ] ) p r i n t key [ x ] INORDER TREE WALK( r i g h t [ x ] ) È un algoritmo ricorsivo! Richiede tempo Θ(n) in un albero di n nodi L algoritmo stampa in ordine crescente le chiavi del sottoalbero che ha come radice il nodo x = È un algoritmo di ordinamento. Infatti vengono stampate nell ordine: le chiavi del sottoalbero sinistro di x la chiave di x le chiavi del sottoalbero destro di x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
7 Visita Inorder root[t1] 5 root[t2] I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
8 Visita in ordine anticipato e posticipato ORDINE ANTICIPATO( x ) i f x!= NIL then p r i n t key [ x ] ORDINE ANTICIPATO( l e f t [ x ] ) ORDINE ANTICIPATO( r i g h t [ x ] ) Stampa nell ordine: la chiave di x le chiavi del sottoalbero sinistro di x le chiavi del sottoalbero destro di x ORDINE POSTICIPATO( x ) i f x!= NIL then ORDINE POSTICIPATO( l e f t [ x ] ) ORDINE POSTICIPATO( r i g h t [ x ] ) p r i n t key [ x ] Stampa nell ordine: le chiavi del sottoalbero sinistro di x le chiavi del sottoalbero destro di x la chiave di x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
9 Visita in ordine anticipato e posticipato root[t1] 5 root[t2] In Order: Ordine Anticipato: Ordine Posticipato: In Order: Ordine Anticipato: Ordine Posticipato: I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
10 Ricerca TREE SEARCH( x, k ) i f x = NIL or k = key [ x ] then r e t u r n x i f k < key [ x ] then r e t u r n TREE SEARCH( l e f t [ x ], k ) e l s e r e t u r n TREE SEARCH( r i g h t [ x ], k ) Dati in ingresso il puntatore alla radice dell albero e una chiave, l algoritmo restituisce il nodo con chiave uguale a k, oppure NIL se non esiste. Sfruttando la proprietà di ordinamento dell albero binario di ricerca, l algoritmo discende l albero in modo ricorsivo. Non è necessario visitare tutti i nodi, ma solo O(h) I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
11 Ricerca Lo stesso algoritmo si può implementare usando un ciclo while, invece della ricorsione. TREE SEARCH 2( x, k ) w h i l e x!= NIL and k!= key [ x ] do i f k < key [ x ] then x = l e f t [ x ] e l s e x = r i g h t [ x ] r e t u r n x I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
12 Ricerca - Esempio 1 root[t] key = Trovato! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
13 Ricerca - Esempio 2 root[t] key = N IL NON Trovato! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
14 Ricerca del minimo TREE MINIMUM( x ) w h i l e l e f t [ x ]!= NIL do x = l e f t [ x ] r e t u r n x Si sfrutta la proprietà dell albero binario di ricerca. Partendo dal nodo x si ha che: Se x ha un figlio sinistro, allora il minimo è nel sottoalbero sinistro, poiché per ogni nodo y s in esso contenuto vale key[y s ] key[x] Se x non ha un figlio sinistro, allora per ogni nodo yd contenuto nel sottoalbero destro vale key[y d ] key[x]. Quindi, il minimo è x stesso I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
15 Ricerca del massimo TREE MAXIMUM( x ) w h i l e r i g h t [ x ]!= NIL do x = r i g h t [ x ] r e t u r n x Simmetrico rispetto al problema di ricerca del minimo. La complessità in tempo per la ricerca del minimo e del massimo è pari all altezza dell albero, ossia O(h) I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
16 Ricerca del minimo e del massimo - Esempio root[t] Minimo: Trovato! Massimo: Trovato! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
17 Ricerca del successore Il successore di un nodo x è definito come il nodo y con la più piccola chiave maggiore di key[x]: succ(key[x]) = min {y T : key[x] < key[y]} Supponiamo che nell albero T ci siano solo chiavi distinte Sfruttando le proprietà dell albero binario di ricerca si può trovare il successore di x senza dover confrontare le chiavi nei nodi I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
18 Ricerca del successore TREE SUCCESSOR( x ) i f r i g h t [ x ]!= NIL then r e t u r n TREE MINIMUM( r i g h t [ x ] ) y = p [ x ] w h i l e y!= NIL and x = r i g h t [ y ] do x = y y = p [ y ] r e t u r n y 1 Se il nodo ha un figlio destro il successore di x è il minimo del sottoalbero destro 2 Se il nodo non ha un figlio destro il successore di x è il più piccolo ascendente di x il cui figlio sinistro è anch esso un ascendente di x. In pratica: si risale l albero finché il nodo di provenienza sta a sinistra. Il nodo di partenza risulta essere il massimo del sottoalbero sinistro di y. Quindi y è il suo successore. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
19 Ricerca del successore - caso 1 Se x ha un figlio destro, è sufficiente cercare il minimo del sottoalbero destro. <5 >5 root[t] minimo del sottoalbero dx Nodi visitati: I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
20 Ricerca del successore - caso 2 Se x non ha un figlio destro, si risale l albero fino a trovare la radice del sottoalbero di cui x è il massimo. root[t] 9 radice del sottoalbero di cui 8 e il massimo <8 > Nodi visitati: I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
21 Ricerca del successore - considerazioni Il tempo necessario per trovare il successore è pari a O(h), dove h è l altezza dell albero. Si percorre un cammino non più lungo della distanza massima tra la radice e una foglia. Predecessore Il predecessore di un nodo x è definito come il nodo y con la più grande chiave minore di key[x]: pred(key[x]) = max {y T : key[y] < key[x]} Per trovare il nodo predecessore si utilizza un algoritmo simmetrico: TREE-PREDECESSOR(x) (Esercizio) Anche TREE-PREDECESSOR(x) richiede tempo O(h), per motivi analoghi. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
22 Inserimento e rimozione Inserendo o rimuovendo un elemento la struttura dell albero cambia L albero deve mantenere le proprietà di un albero binario di ricerca La struttura dell albero varia a seconda della sequenza di dati inseriti o rimossi L inserimento è un operazione semplice e immediata La rimozione è più complessa... I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
23 Inserimento 1 TREE INSERT (T, z ) 2 y = NIL / padre / 3 x = r o o t [T] / f i g l i o / 4 5 w h i l e x!= NIL / f i n c h e non s i r a g g i u n g e l a p o s i z i o n e 6 i n c u i i n s e r i r e z ( x = NIL ) / 7 y = x / memorizza i l nodo padre / 8 i f key [ z ] < key [ x ] / p r e n d i i l f i g l i o g i u s t o / 9 then x = l e f t [ x ] 0 e l s e x = r i g h t [ x ] 1 2 p [ z ] = y / i n s e r i s c i z come f i g l i o d i y / 3 i f y = NIL / s e l a l b e r o e vuoto / 4 then r o o t [T] = z / z d i v e n t a l a r a d i c e / 5 e l s e i f key [ z ] < key [ y ] / a l t r i m e n t i e un f i g l i o d i y / 6 then l e f t [ y ] = z 7 e l s e r i g h t [ y ] = z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
24 Inserimento Si usano due puntatori x e y x scende lungo l albero alla ricerca della posizione in cui inserire z y punta al padre di x Nel ciclo while, x scende al figlio destro o sinistro a seconda dell esito del confronto tra key[z] e key[x] Si esce dal ciclo quando x = NIL: x occupa la posizione in cui z verrà inserito e quindi y punta al nodo che diventerà il padre di z Nelle linee viene effettuato l inserimento Che costo ha l operazione di inserimento? Il tempo necessario è O(h): non più del cammino massimo tra la radice e una foglia I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
25 Inserimento - esempio 1 T REE INSERT (T, z) con key[z] = 14 root[t] y 19 z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
26 Inserimento - esempio 2 sequenza: root[t] 5 root[t] 5 root[t] root[t] 5 root[t] 5 root[t] I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
27 Inserimento - esempio 3 sequenza: root[t] La struttura dell albero risulta diversa a seconda della sequenza di inserimento! I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
28 Ribilanciamento Come ristrutturare l albero in modo che sia bilanciato? Supponiamo di partire da un albero bilanciato per = 1 Se l albero ottenuto dopo un inserimento risulta non bilanciato dobbiamo: individuare il nodo critico, cioè il nodo al livello massimo che viola il bilanciamento ristrutturare il sottoalbero che ha come radice il nodo critico 25 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
29 Ribilanciamento - caso 1 ρ r Nodo critico s r s τ h h+1 k r < s σ < s σ > r z > s σ τ ρ σ z k+1 z 1 L albero ristrutturato ancora un albero binario di ricerca, poiché lo spostamento dei nodi r, s e dei sotto alberi ρ, σ e τ rispetta l ordinamento degli elementi allocati nell albero 2 Nella sezione dell albero che è stata alterata nessun nodo presenta sbilanciamento 3 Nella sezione dell albero che non è stata alterata nessun nodo può presentare sbilanciamento, poiché nella sezione alterata si è ripristinato il livello massimo k + 1 che era raggiunto nell albero originario prima dell inserimento di z k+2 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
30 Ribilanciamento - caso 2 r Nodo critico t s r t s h h+1 h+2 σ < t σ > r τ < s t > r ρ σ τ k σ τ ω ρ z ω k+1 z 1 L albero ristrutturato ancora un albero binario di ricerca, poiché lo spostamento dei nodi r, s, t e dei sotto alberi ρ, σ, τ e ω rispetta l ordinamento degli elementi allocati nell albero 2 Nella sezione dell albero che è stata alterata nessun nodo presenta sbilanciamento 3 Nella sezione dell albero che non è stata alterata nessun nodo può presentare sbilanciamento, poiché nella sezione alterata si è ripristinato il livello massimo k + 1 che era raggiunto nell albero originario prima dell inserimento di z k+2 I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
31 Ribilanciamento - esempio r s s r z z 25 ρ = σ = τ = I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
32 Ribilanciamento - esempio 2 8 r t 10 5 s 16 r 8 s t σ = {9} τ = {12} ρ =sottoalbero con radice 5 = {5, 3, 6} ω =sottoalbero con radice 18 = {18, 17, 26} I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
33 Ribilanciamento - considerazioni Poiché si può ribilanciare un albero binario di ricerca in tempo costante dopo l inserimento di un nuovo elemento, questa struttura permette di eseguire una qualsiasi sequenza di operazioni di inserzione e ricerca in modo efficiente. Il numero massimo di confronti tra elementi richiesto da tali operazioni coincide con h, l altezza dell albero. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
34 Rimozione T REE DELET E(T, z) Ci sono tre casi: 1 Se z non ha figli, si modifica p[z] in modo che punti non più a z, ma a NIL 2 Se z ha un unico figlio, si taglia fuori z dall albero, facendo puntare p[z] all unico figlio di z 3 Se z ha due figli, si individua il suo successore, ossia il minimo del suo sottoalbero destro. Il successore y ha al più il figlio destro (perchè?). Quindi y prende il posto di z, e i dati in y vengono copiati nella posizione di z. I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
35 Rimozione - caso 1 z senza figli: key[z] = z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
36 Rimozione - caso 2 z con un figlio: key[z] = z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
37 Rimozione - caso 3 z con due figli: key[z] = z y successore di z: viene rimosso e va al posto di z I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
38 Rimozione - caso 3 z con due figli: key[z] = y I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
39 Rimozione 1 TREE DELETE(T, z ) 2 i f l e f t [ z ] = NIL or r i g h t [ z ] = NIL 3 then y = z / z ha 0 o 1 f i g l i o / 4 e l s e y = TREE SUCCESSOR( z ) / z ha 2 f i g l i, c e r c o succ ( z ) / 5 i f l e f t [ y ]!= NIL / x = f i g l i o non n u l l o d i y / 6 then x = l e f t [ y ] 7 e l s e x = r i g h t [ y ] / Nota : x puo d i v e n t a r e NIL / 8 9 i f x!= NIL / s e y ha un f i g l i o, t a g l i o f u o r i y / 0 then p [ x ] = p [ y ] 1 i f p [ y ] = NIL / s e y e r a l a r a d i c e / 2 then r o o t [T] = x / x d i v e n t a l a r a d i c e / 3 e l s e i f y = l e f t [ p [ y ] ] / a l t r i m e n t i x d i v e n t a f i g l i o 4 d e l padre d i y / 5 then l e f t [ p [ y ] ] = x 6 e l s e r i g h t [ p [ y ] ] = x 7 i f y!= z / s e i l nodo che ho t o l t o e s u c c ( z ) / 8 then key [ z ] = key [ y ] / c o p i o y a l p o s t o d i z / 9 // s e y ha anche a l t r i a t t r i b u t i c o p i a l i i n z 0 r e t u r n y I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
40 Rimozione - considerazioni Se siamo nel caso 1 oppure 2 l operazione di rimozione è immediata Se siamo nel caso 3 è necessario eseguire la procedura T REE SUCCESSOR(z), che ha una complessità temporale O(h) Quindi la rimozione richiede tempo O(h) Le operazioni di inserimento e di rimozione richiedono tempo O(h) I. Castelli Alberi binari di ricerca, A.A. 2009/ /39
Alberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella [email protected] www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
Alberi Binari di Ricerca
Alberi Binari di Ricerca Algoritmi su gli alberi binari: visite Dato un puntatore alla radice di un albero vogliamo scandire in modo sistematico tutti i nodi di tale albero In una lista abbiamo una unica
Alberi binari di ricerca
Alberi binari di ricerca Definizione Visita dell albero inorder Ricerca Ricerca minimo, massimo e successore. Inserimento ed eliminazione di un nodo Problema del bilanciamento dell albero Albero binario
Esercitazione 6. Alberi binari di ricerca
Esercitazione 6 Alberi binari di ricerca Struttura base Rappresentabile attraverso una struttura dati concatenata in cui ogni nodo è un oggetto di tipo struttura Ogni nodo contiene: campo chiave (key)
Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc
Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Grafo Un grafo G è una coppia (V, E) ove V è un
Algoritmi e Strutture Dati
Alberi Binari di Ricerca (BST) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Alberi Binari di Ricerca (Binary Search Trees BST)
Esercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1.
Esercizio 1 E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1 livello 0 FB = -1 FB = -1 livello 1 FB = -1 livello 2 livello 3 L altezza è 3, il minimo si trova nel
Multi-way search trees
Multi-way search trees GT. 10.4 1 Argomenti Multi-way search trees Multi-way searching 9 (2,4) Trees 2 5 7 10 14 2 1 Alberi Binari di Ricerca Bilanciati n numero di chiavi (entry(key,elem)) AVL tree log(
alberi binari di ricerca (BST)
Le tabelle di simboli e gli alberi binari di ricerca (BT) ianpiero abodi e Paolo amurati Dip. utomatica e Informatica Politecnico di Torino Tabelle di simboli Definizione: una tabella di simboli è una
In questa lezione Alberi binari di ricerca: la cancellazione
In questa leione Alberi binari di ricerca: la cancellaione 1 L algoritmo di Hibbard per cancellare (1962) Sia il nodo da cancellare: 1) è una foglia: si rimuove 2) ha un solo figlio x: si rende x figlio
Alberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Alberi ed Alberi Binari
Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,
Alberi binari. Ilaria Castelli [email protected] A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione
Alberi binari Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari
Gli ordini di visita di un albero binario di 9 nodi sono i seguenti: A, E, B, F, G, C, D, I, H (anticipato)
Alberi Indovina l albero Gli ordini di visita di un albero binario di 9 nodi sono i seguenti: A, E, B, F, G, C, D, I, H (anticipato) B, G, C, F, E, H, I, D, A (posticipato) B, E, G, F, C, A, D, H, I (simmetrico).
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree
Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Si definisca Interval Tree un albero binario di ricerca le
Esercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
Albero binario. Alberi binari (introduzione) Terminologia. Alberi di ricerca binaria (BST)
Albero binario 2 Alberi binari (introduzione) Struttura di dati bidimensionale formata da nodi costituiti ciascuno dai dati da memorizzare e da due link Ver. 2.4 20 - Claudio Fornaro - Corso di programmazione
Alberi binari di ricerca
Alberi binari di ricerca Definizione Un albero si dice albero binario di ricerca è un albero binario in cui: - Ogni nodo è caratterizzato un valore chiamato chiave - L insieme delle chiavi è totalmente
Esercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
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
Alberi rosso-neri. Oltre ad essere alberi binari di ricerca, gli alberi rosso-neri soddisfano le seguenti proprietà:
Alberi rosso-neri Gli alberi rosso-neri sono alberi binari di ricerca in cui le operaioni Insert e Delete sono opportunamente modificate in modo tale da garantire un altea dell albero h = O(log n). A tale
Alberi rosso-neri. Le operazioni sugli alberi binari di ricerca hanno complessità proporzionale all altezza h dell albero.
Alberi rosso-neri Le operazioni sugli alberi binari di ricerca hanno complessità proporzionale all altezza h dell albero. Gli alberi rosso-neri sono alberi binari di ricerca in cui le operazioni Insert
Algoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
Alberi Rosso-Neri: definizione
Alberi Rosso-Neri: definizione Altezza di un red-black tree Un albero Rosso Nero (Red Black Tree, RB tree) èunalbero binario di ricerca in cui ad ogni nodo viene associato un colore rosso o nero Ogni nodo
Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio
Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi
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
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 29 novembre 2010 1 Rotazioni semplici in ABR Si consideri l operazione di rotazione semplice applicata
