Alberi Bilanciati di Ricerca
|
|
- Vittorio Marra
- 7 anni fa
- Visualizzazioni
Transcript
1 Alberi Bilanciati di Ricerca Damiano Macedonio Uniersità Ca' Foscari di Venezia
2 Copyright 2009, 2010 Moreno Marzolla, Uniersità di Bologna ( Modifications Copyright c 2012, Damiano Macedonio, Uniersità Ca' Foscari di Venezia This work is licensed under the Creatie Commons Attribution-NonCommercial- ShareAlike License. To iew a copy of this license, isit or send a letter to Creatie Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Algoritmi e Strutture Dati 2
3 Introduzione Abbiamo isto che in un ABR è possibile inserire, rimuoere e indiiduare nodi data la corrispondente chiae in tempo O(h) con h=altezza dell'albero Un albero binario completo con n nodi ha altezza h=θ(log n) Tuttaia, inserimenti e rimozioni di nodi possono sbilanciare l'albero Domanda: indiiduare una sequenza di n inserimenti in un ABR inizialmente uoto tali che al termine, l'albero risultante abbia altezza Θ(n) Il nostro obbiettio: mantenere bilanciato un ABR, anche a seguito di inserimenti/rimozioni di nodi Algoritmi e Strutture Dati 3
4 Alberi AVL Un albero AVL è un albero di ricerca (quasi) bilanciato Un albero AVL con n nodi supporta le operazioni insert(), delete(), lookup() con costo O(log n) nel caso pessimo Adelson-Velskii, G.; E. M. Landis (1962). "An algorithm for the organization of information". Proceedings of the USSR Academy of Sciences 146: Georgy Maximoich Adelson-Velsky (1922 ) Algoritmi e Strutture Dati 4 Egenii Mikhailoich Landis ( )
5 Alcune definizioni Fattore di bilanciamento Il fattore di bilanciamento β() di un nodo è dato dalla differenza tra l'altezza del sottoalbero sinistro e del sottoalbero destro di : β() = altezza(sin()) altezza(des()) Bilanciamento in altezza Un albero si dice bilanciato in altezza se le altezze dei sottoalberi sinistro e destro di ogni nodo differiscono al più di uno In altre parole, un albero è bilanciato in altezza se per ogni suo nodo, si ha β() 1 Definizione: un albero AVL è un ABR bilanciato in altezza Algoritmi e Strutture Dati 5
6 Esempio β()=0 β()=-3 Algoritmi e Strutture Dati 6
7 Esempio β()=0 β(t)=2 t Algoritmi e Strutture Dati 7
8 Altezza di un albero AVL Per alutare l'altezza di un albero AVL, consideriamo gli alberi più sbilanciati che si possano costruire Alberi di Fibonacci T 0 T 1 T 2 T 3 T n T n-1 T n-2 Algoritmi e Strutture Dati 8
9 Altezza di un albero Fibonacci Consideriamo un albero di Fibonacci di altezza h. Sia n h il numero dei nodi Per costruzione si ha Dimostriamo che n h =n h 1 n h 2 1 n h =F h 3 1 oe F n è l'n-esimo numero di Fibonacci Algoritmi e Strutture Dati 9
10 Altezza di un albero Fibonacci Base: h=0 n 0 = 1 F 3 = 2 Passo induttio T 0 n h =F h 3 1 n h = n h 1 n h 2 1 = F h 2 1 F h = F h 2 F h 1 1 = F h 3 1 Algoritmi e Strutture Dati 10
11 Altezza di un albero di Fibonacci Quindi ricapitolando: un albero di Fibonacci di altezza h ha F h+3 1 nodi Ricordiamo che da cui otteniamo F h = h, n h =F h 3 1= h e possiamo quindi concludere che h= logn h Algoritmi e Strutture Dati 11
12 Conclusione Poiché... l'albero di Fibonacci con n nodi è quello che tra tutti gli alberi AVL con n nodi ha altezza massima; l'altezza di un albero di Fibonacci con n nodi è proporzionale a (log n)...si conclude che: l'altezza di un albero AVL con n nodi è O(log n) Algoritmi e Strutture Dati 12
13 Mantenere il bilanciamento La ricerca in un albero AVL iene effettuata come in un generico ABR Inserimenti e rimozioni inece richiedono di essere modificati per mantenere il bilanciamento dell'albero Esempio 9 Inserimento del alore β() > 1 6 Algoritmi e Strutture Dati 13
14 Rotazioni L'operazione fondamentale per ribilanciare l'albero è la rotazione semplice Domanda: dimostrare che la rotazione semplice presera la proprietà d'ordine degli ABR Uso come perno u u T3 Uso u come perno T1 T1 T2 T2 T3 Algoritmi e Strutture Dati 14
15 Rotazioni Supponiamo che a seguito di un inserimento o cancellazione, una parte dell'albero sia sbilanciata Abbiamo quattro casi (simmetrici due a due) SS (Sinistro-Sinistro) SD (Sinistro-Destro) DD (Destro-Destro) DS (Destro-Sinistro) Algoritmi e Strutture Dati 15
16 Ribilanciamento: rotazione SS Si applica una rotazione semplice erso destra su Ha costo O(1) +2 0 u u h+2 T3 h h+1 T1 h+1 T1 T2 T2 T3 Algoritmi e Strutture Dati 16
17 Ribilanciamento: rotazione SD (non funziona!) Non si ribilancia! +2-2 u u h+2 T3 h h T1 h+2 T1 T2 T2 T3 Algoritmi e Strutture Dati 17
18 Ribilanciamento: rotazione SD primo passo z w w T4 z T4 T1 T2 T3 T1 T2 T3 Algoritmi e Strutture Dati 18
19 Ribilanciamento: rotazione SD secondo passo w w z T1 z T2 T3 T4 T1 T2 T3 T4 Algoritmi e Strutture Dati 19
20 Ribilanciamento: rotazione SD -1 z +2 caso 1 Rotazione doppia: la prima a sinistra con perno z, la seconda a destra con perno w T4 h 0 w h T1 T2 h-1 T3 0 z -1 h T1 h-1 T2 T3 T4 h Algoritmi e Strutture Dati 20
21 Ribilanciamento: rotazione SD caso 2-1 z +2 Rotazione doppia: la prima a sinistra con perno z, la seconda a destra con perno w T4 h 0 w h T1 T2 h-1 T3 1 z 0 h T1 h-1 T2 T3 T4 h Algoritmi e Strutture Dati 21
22 Alberi AVL: Inserimento Si inserisce il nuoo alore come per gli ABR Si ricalcolano tutti i fattori di bilanciamento mutati Al più il ricalcolo riguarderà un cammino dalla foglia appena inserita fino alla radice, quindi ha costo O(log n) Se un nodo presenta fattore di bilanciamento ±2 (nodo critico), occorre ribilanciare l'albero mediante una delle rotazioni iste Nota: in caso di inserimento, il nodo critico è unico Costo complessio: O( log n ) Algoritmi e Strutture Dati 22
23 Alberi AVL: Rimozione Si rimuoe il nodo come per gli ABR Si ricalcolano tutti i fattori di bilanciamento mutati Al più il ricalcolo riguarderà un cammino dal padre del nodo eliminato fino alla radice, quindi ha costo O(log n) Per ogni nodo con fattore di bilanciamento ±2, occorre ribilanciare l'albero mediante una delle rotazioni iste Nota: nel caso della rimozione, possono comparire più nodi con fattori di bilanciamento ±2 Costo complessio: O( log n ) Algoritmi e Strutture Dati 23
24 Esempio: cancellazione con rotazioni a cascata Algoritmi e Strutture Dati 24
25 Applicare rotazione a sinistra su Algoritmi e Strutture Dati 25
26 Applicare rotazione a sinistra su Algoritmi e Strutture Dati 26
27 Albero ribilanciato Algoritmi e Strutture Dati 27
28 Alberi AVL: Riassunto search( Key k ) O( log n ) nel caso peggiore insert( Key k, Item t ) O( log n ) nel caso peggiore delete( Key k ) O( log n ) nel caso peggiore Algoritmi e Strutture Dati 28
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Alberi di ricerca Domenico Fabio Savo 1 Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato Dizionario 2 Alberi binari di ricerca (BST
DettagliAlgoritmi e strutture dati
Algoritmi e Strutture Dati Alberi di ricerca Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario 2 Alberi binari di ricerca (BST = binary search tree)
DettagliAlgoritmi e Strutture Dati
Alberi AVL Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 26/7 Alberi AVL Definizione (bilanciamento in altezza): un albero è bilanciato
DettagliAlberi di ricerca. Dizionari. Definizione. Alberi binari di ricerca (BST = binary search tree) Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario Alberi di ricerca Basato su materiale di C. Demetrescu, I. Finocchi, G.F.
DettagliAlberi di ricerca. Alberi binari di ricerca. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Alberi di ricerca Alberi binari di ricerca Un esempio: l ADT Dizionario (mutabile) Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Alberi binari di
DettagliUn esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem
Un esempio: l ADT Dizionario (mutabile) Algoritmi e Laboratorio a.a. 2006-07 Lezioni Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Parte 19-D Alberi
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli Scuola di Scienze e Tecnologie Università di Camerino Definizione (bilanciamento in altezza): un albero è bilanciato in altezza se le altezze dei sottoalberi sinistro
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Capitolo 0 - Code con priorità e insiemi disgiunti This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license,
DettagliAlgoritmi e Strutture Dati. Alberi di Ricerca Alberi Bilanciati I (Alberi AVL)
Algoritmi e Strutture Dati Alberi di Ricerca Alberi Bilanciati I (Alberi AVL) Alberi bilanciati di ricerca Gli alberi binari di ricerca sono semplici da gestire (inserimenti e cancellazioni facili da implementare)
DettagliCode con priorità. Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna.
Code con priorità Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna marzolla@cs.unibo.it http://www.moreno.marzolla.name/ Copyright 2009 2012 Moreno Marzolla, Università di Bologna
DettagliAlgoritmi e Strutture Dati. Alberi di Ricerca Alberi Bilanciati I (Alberi AVL)
Algoritmi e Strutture Dati Alberi di Ricerca Alberi Bilanciati I (Alberi AVL) Alberi bilanciati di ricerca Gli alberi binari di ricerca sono semplici da gestire (inserimenti e cancellazioni facili da implementare)
Dettaglidizionari dizionari introduzione al bilanciamento dizionari/2 alberi bilanciati ! ADT che supportano le seguenti operazioni
dizionari dizionari alberi bilanciati! ADT ce supportano le seguenti operazioni! membersip! ance detta searc! insert! delete! o remove! le liste e i BST sono dizionari maggio 2002 ASD2002 - Alberi bilanciati
DettagliBinari di Ricerca Binary. Alberi. Trees. Search. Damiano Macedonio Università Ca' Foscari di Venezia.
Alberi Binari di Ricerca Binary Search Trees Damiano Macedonio Università Ca' Foscari di Venezia mace@unive.it Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Damiano Macedonio Università Ca' Foscari di Venezia mace@unive.it Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)
DettagliIl problema dello zaino
Il problema dello zaino (knapsack problem) Damiano Macedonio mace@unive.it Copyright 2010 2012 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/asd2011b/) This work is licensed
Dettaglidizionari alberi bilanciati
dizionari alberi bilanciati dizionari ADT che supportano le seguenti operazioni membership anche detta search insert delete o remove le liste e i BST sono dizionari maggio 2002 ASD2002 - Alberi bilanciati
DettagliCammini minimi. Damiano Macedonio
Cammini minimi Damiano Macedonio mace@unive.it Copyright 2010 2012, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2011b/) Modifications Copyright c 2015, Damiano
DettagliTeoria della NP-completezza. Damiano Macedonio
Teoria della NP-completezza Damiano Macedonio mace@unive.it Copyright 2010, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2009/) This work is licensed under
DettagliMulti-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(
DettagliDipartimento di Elettronica, Informazione e Bioingegneria API 2013/4
Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Bilanciamento negli alberi di ricerca @ G. Gini 2013 Dizionari Dizionario Insieme dinamico che implementa le seguenti funzionalità Cerca
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Capitolo 3 - Tipi di dato e strutture di dati This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license,
DettagliABR di altezza logaritmica
R di altezza logaritmica Esistono vari criteri di bilanciamento di alberi binari di ricerca ce ne garantiscono l altezza logaritmica. iamiamo bilanciato ogni albero binario di altezza logaritmica nel numero
DettagliAlberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
DettagliOrdinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna
Ordinamento Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 29 novembre 2010 1 Rotazioni semplici in ABR Si consideri l operazione di rotazione semplice applicata
DettagliAlberto Montresor Università di Trento
!! Algoritmi e Strutture Dati! Capitolo 5 - Alberi!!! Alberto Montresor Università di Trento!! This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy
DettagliAlgoritmi e Strutture Dati. Alberi Bilanciati: Alberi Red-Black
Algoritmi e Strutture Dati Alberi Bilanciati: Alberi Red-Black Alberi bilanciati di ricerca Gli alberi binari di ricerca sono semplici da gestire (inserimenti e cancellazioni facili da implementare) ma
DettagliAlberi binari: definizione e alcune proprietà
Alberi binari: definizione e alcune proprietà Alberi binari Un albero binario è un albero con radice in cui ogni nodo ha al più due figli. In maniera più formale: Definizione. (Alberi binari) Un albero
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 5 - Alberi Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this
DettagliRicerca con una chiave k Assumiamo l esistenza di un descrittore albero con i campi: albero.radice (=null per l albero vuoto) albero.dimensione (=0 pe
Ricerca con una chiave k Assumiamo l esistenza di un descrittore albero con i campi: albero.radice (=null per l albero vuoto) albero.dimensione (=0 per l albero vuoto) La funzione Ricerca prende in input
DettagliESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09)
ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 0/0) DISPENSA N. 6 Esercizi su alberi di ricerca e AVL Notazione: Per un albero T scriviamo T per indicare il numero dei nodi di T e h(t ) per indicare
DettagliAlberi di ricerca binari
Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino Introduzione Gli alberi di ricerca binari (Binary Search Tree, o BST) sono una struttura di dati che supporta in modo
DettagliEsercizio 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
DettagliDizionari. Dizionari con gli alberi. Alberi binari di ricerca. Realizzazione con alberi binari di ricerca. Alberi rosso-neri.
Dizionari Realizzazione con alberi binari di ricerca. Alberi rosso-neri. Dizionari con gli alberi Astro, Dado, Lana, Mela, Tasto,Vela, Zappa Astro Mela Tasto Zappa Alberi binari di ricerca Gli alberi binari
Dettaglid. Cancellazione del valore 5 e. Inserimento del valore 1
Esercizio1 Si consideri un albero binario non vuoto in cui a ciascun nodo v è associato un numero reale v.val. Scrivere un algoritmo che, dato in input l'albero T e un numero reale x, restituisce true
DettagliAlgoritmi e Strutture Dati. Capitolo 6 Il problema del dizionario
Algoritmi e Strutture Dati Capitolo 6 Il problema del dizionario Il tipo dato Dizionario Suppongo sempre che mi venga dato un riferimento diretto all elemento da cancellare Applicazioni: gestione archivi
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
DettagliEsercizi BST - AVL. E. Fachini
Esercizi BST - AVL. Verifica che un ABR è un AVL 2. verifica bilanciamento in altezza di un ABR 3. Costruzione alberi di Fibonacci 4. Calcolo altezza albero AVL in O(lg n) 5. split di una ABR intorno a
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Alberi rosso-neri m.patrignani Contenuto Definizione di alberi rosso-neri Proprietà degli alberi rosso-neri Complessità delle operazioni elementari Rotazioni Inserimenti e
DettagliAlberi Binari di Ricerca e Alberi Rosso-Neri
Alberi Binari di Ricerca e Alberi Rosso-Neri Obiettivi Studiare strutture dati che consentano di effettuare in modo efficiente le operazioni di Minimo e massimo Successore Inserimento e cancellazione Ricerca
DettagliTesting, correttezza e invarianti
Testing, correttezza e invarianti Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright 2018 Moreno Marzolla, Università
DettagliAlgoritmi e Strutture Dati. Alberi binari di ricerca
Algoritmi e Strutture Dati Alberi binari di ricerca Alberto Montresor Università di Trento 2018/10/25 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Sommario
DettagliAlberi rosso neri. API a.a. 2013/2014 Gennaio 23, 2014 Flavio Mutti, PhD
Alberi rosso neri API a.a. 2013/2014 Gennaio 23, 2014 Flavio Mutti, PhD 2 Sommario Definizione Operazione di rotazione Inserimento Cancellazione Temi d esame 3 Introduzione Un albero rosso-nero è un albero
DettagliAlgoritmi e Strutture Dati. Alberi Bilanciati: Alberi Red-Black
Algoritmi e Strutture Dati Alberi Bilanciati: Alberi Red-Black Alberi bilanciati di ricerca Gli alberi binari di ricerca sono semplici da gestire (inserimenti e cancellazioni facili da implementare) ma
Dettaglialgoritmi e strutture di dati
algoritmi e strutture di dati alberi rosso-neri m.patrignani contenuto definizione di alberi rosso-neri proprietà degli alberi rosso-neri complessità delle operazioni elementari rotazioni inserimenti e
DettagliAlberi ed Alberi Binari di Ricerca
Alberi ed Alberi Binari di Ricerca 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
DettagliUn esempio di mutua ricorsione
Inserimento in un ABR n-bilanciato Un esempio di mutua ricorsione con gli alberi bilanciati in altezza, proprietà più debole, si ottiene maggiore semplicità delle operazioni di ribilanciamento (niente
DettagliAlberi binari e alberi binari di ricerca
Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Alberi Un albero è una collezione non vuota di: nodi con nome e informazioni
DettagliInformatica 3. LEZIONE 27: Strutture ad albero avanzate. Modulo 1: Trie Modulo 2: Alberi bilanciati Modulo 3: Strutture dati spaziali
Informatica 3 LZION 27: Strutture ad albero avanzate Modulo 1: Trie Modulo 2: Alberi bilanciati Modulo 3: Strutture dati spaziali Informatica 3 Lezione 27 - Modulo 1 Trie Trie (1) Definizione di trie:
DettagliAlgoritmo di ordinamento sul posto che ha tempo di esecuzione :
QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : O(n2 ) nel caso peggiore O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior algoritmo
DettagliAlberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica giovedì 9
DettagliValutazione delle prestazioni di programmi paralleli
Valutazione delle prestazioni di programmi paralleli Moreno Marzolla Dip. di Informatica Scienza e Ingegneria (DISI) Università di Bologna moreno.marzolla@unibo.it Copyright 2013, 2014, Moreno Marzolla,
DettagliLa cancellazione in un AVL
La cancellazione in un VL La cancellazione avviene come in un R, con la necessità di aggiornare i fattori di bilanciamento ed eventualmente ribilanciare l albero. Esempio: ancellazione di una foglia, 4
DettagliIn questa lezione. Costruire un max-heap. [CLRS01] cap. 6 par Prof. E. Fachini - Intr. Alg.
In questa lezione Costruire un max-heap [CLRS01] cap. 6 par. 6.3!1 Heapsort: analisi Heapsort(A) Build-Max-Heap(A) for i = A.length downto 2 do scambia A[1] e A[i] A.heap-size = A.heap-size - 1 Max-Heapify
DettagliADT Dizionario. Ordered search table. Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D:
Ordered search table Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D: possiamo memorizzare le entrate di D in un array list S in ordine non decrescente di chiavi:
DettagliFondamenti teorici e programmazione
Fondamenti teorici e programmazione FTP(A) - modb Lezione 9 di ricerca binaria F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 liberi Un albero libero è un
DettagliAlberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati
Alberi CORDA Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati Albero - definizione Albero Figli, fratelli, nodi, foglie Grado, livello, altezza,
DettagliAlberi 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
DettagliTecniche di analisi degli algoritmi
Tecniche di analisi degli algoritmi Damiano Macedonio mace@unive.it Algoritmi e Strutture Dati, A.A. 2012/13 27 ottobre 2012 Original work Copyright c 2009 Moreno Marzolla, Università di Bologna Modifications
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 8 Code con priorità: Heap binomiali Riepilogo Array non ord. Array ordinato Lista non ordinata Lista ordinata Find Min Insert Delete DelMin Incr. Key Decr. Key merge
DettagliQuickSort Università degli Studi di Milano
QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior
DettagliCode a priorità. Progettazione di Algoritmi Matricole congrue a 1. Docente: Annalisa De Bonis
Code a priorità Progettazione di Algoritmi 2018-19 Matricole congrue a 1 Docente: Annalisa De Bonis 26 Coda a priorità Una coda a priorità è un collezione di elementi a ciascuno dei quali è assegnata una
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
DettagliDizionari. Realizzazione con alberi binari di ricerca. Alberi rosso-neri. Ugo de' Liguoro - Algoritmi e Seprimentazioni 03/04 Lez.
Dizionari Realizzazione con alberi binari di ricerca. Alberi rosso-neri. Dizionari con gli alberi Astro, Dado, Lana, Mela, Tasto,Vela, Zappa Mela Astro Tasto Zappa Alberi binari di ricerca Gli alberi binari
DettagliLezione 12 Tabelle Hash
Lezione 12 Tabelle Hash Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 2 ABR: Visita Scrivere un programma che legga
DettagliEsame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z
Esame di Algoritmi e Strutture Dati Corso di Laurea in Ingegneria Informatica Canali A-L, M-Z Anno Accademico 2002-2003 9 luglio 2002-03 Domanda 1, punti 6 Si consideri la seguente classe Java, in cui,
DettagliIn 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
DettagliAlberi. Se x è il genitore di y, allora y è un figlio di x. Un albero binario è un albero in cui ogni nodo ha al massimo due figli.
Alberi Un albero è un insieme di oggetti, chiamati nodi, su cui è definita una relazione binaria G(x, y) che leggiamo x è genitore di y tale che: 1. esiste un unico nodo, chiamato radice, che non ha genitori;
DettagliAlberi binari di ricerca
Alberi binari di ricerca Gli alberi binari di ricerca sono ottime strutture dati per memorizzare coppie di elementi (k, e) chiave elemento di un dizionario. Un albero binario di ricerca T è un albero binario
DettagliAlberi 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
DettagliIntroduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi
B Introduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi Si consideri l operazione di inserimento in un AVL. Si supponga di trovarsi nel caso in cui una rotazione a
DettagliALBERI : introduzione SOMMARIO ALBERI ALBERI. ALBERI: introduzione ALBERI BINARI: introduzione VISITE RICORSIVE DI ALBERI
SOMMARIO ALBERI: introduzione ALBERI BINARI: introduzione VISITE RICORSIVE DI ALBERI Dimensione e Altezza ALBERI BINARI DI RICERCA (BST) Introduzione Ricerca, inserimento e cancellazione Implementazione
DettagliALBERI BINARI DI RICERCA
ALBERI BINARI DI RICERCA ABR Abbiamo visto che la scelta del tipo di dato astratto da utilizzare dipende dal problema. Se la situazione è tale per cui la lista deve essere continuamente modificata in dimensione
DettagliEsercizi 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
DettagliGLI ALBERI BINARI DI RICERCA. Cosimo Laneve
GLI ALBERI BINARI DI RICERCA Cosimo Laneve argomenti 1. alberi binari di ricerca 2. la ricerca di elementi e la complessità computazionale 3. operazione di cancellazione di elementi 4. esempi/esercizi
DettagliIl numero dei nodi al livello i è 1, per 0 i altezza L altezza h di un albero completamente sbilanciato con n nodi è h = n-1
alberi completamente sbilanciati Il numero dei nodi al livello i è 1, per 0 i altezza L altezza h di un albero completamente sbilanciato con n nodi è h = n-1 1 Un albero completamente bilanciato o pieno
DettagliAlberi 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
DettagliAlberi 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
Dettaglialberi completamente sbilanciati
alberi completamente sbilanciati Il numero dei nodi al livello i è 1, per 0 i altezza L altezza h di un albero completamente sbilanciato con n nodi è h = n-1 1 Un albero completamente bilanciato o pieno
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Capitolo 4 - Strutture di dati elementari This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit
DettagliProva di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE
Prova di Algoritmi e s.d. (1o anno) 17 Settembre 2002 TESTO e RISPOSTE Esercizio 1 (punti 7 in prima approssimazione) Consideriamo alberi binari con insieme dei nodi NODI = N (l'insieme dei naturali).
DettagliProva di Algoritmi e s.d. (1o anno) 7 Febbraio TESTO e RISPOSTE
Prova di Algoritmi e s.d. (1o anno) 7 Febbraio 2003 TESTO e RISPOSTE Esercizio 1 (punti 5 in prima approssimazione) Consideriamo alberi binari con insieme dei nodi NODI = N (l'insieme dei naturali). Riportiamo
DettagliAlgoritmi e Strutture Dati
Alberi Rosso-Neri (RB-Trees) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Alberi Rosso-Neri Definizione Altezza nera di un red-black tree
DettagliUn albero completamente bilanciato o pieno (full) alberi completamente sbilanciati. Un albero binario completo
alberi completamente sbilanciati Un albero completamente bilanciato o pieno (full) Definizione: Un albero è pieno se tutte le foglie sono sullo stesso livello e ogni nodo non foglia ha due figli. Il numero
DettagliGli heap. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Gli heap Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino 1 a.a. 2001/2002 Sommario Gli heap L algoritmo Heapsort Le code con priorità. 2 a.a. 2001/2002 Politecnico
DettagliIn questa lezione Alberi binari di ricerca
In questa lezione Alberi binari di ricerca!1 Dizionari Un dizionario è una struttura dati costituita da un insieme con le operazioni di inserimento, cancellazione e verifica di appartenenza di un elemento.
DettagliEsercizio Per quali valori di t l albero in figura è un B-Albero legale?
Esercizi di Algoritmi e strutture dati II: B-Alberi. A cura di: Teresa E. NARDIELLO Esercizio 19.1-2 Per quali valori di t l albero in figura è un B-Albero legale? M D H Q T X B C F G J K L N P R S V W
DettagliStrutture Merge-Find
Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria Università di Bologna moreno.marzolla@unibo.it http://www.moreno.marzolla.name/ Struttura dati per insiemi disgiunti Operazioni fondamentali:
Dettaglicarattere a b c d e f cod. var
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un altra Ogni codice a lunghezza fissa è ovviamente prefisso. Ma anche il codice a lunghezza variabile
DettagliTecniche di analisi degli algoritmi
Tecniche di analisi degli algoritmi Moreno Marzolla marzolla@cs.unibo.it Dipartimento di Scienze dell Informazione, Università di Bologna 19 ottobre 2010 Copyright c 2009, 2010 Moreno Marzolla, Università
DettagliLaboratorio 26 Aprile 2012
Laboratorio 26 Aprile 2012 Albero binario di ricerca: Ricerca Scrivere un programma che legga da tastiera una sequenza di n interi distinti e li inserisca in un albero binario di ricerca (senza ribilanciamento)
DettagliEsercizi 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
DettagliTabelle hash. Damiano Macedonio Università Ca' Foscari di Venezia. mace@unive.it
Tabelle hash Damiano Macedonio Università Ca' Foscari di Venezia mace@unive.it Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml) Modifications
Dettagliricerca di un elemento, verifica dell appartenenza di un elemento
Alberi Binari di Ricerca Gli alberi binari di ricerca (o, alberi di ricerca binaria) sono strutture dati che consentono, su un insieme di elementi con un ordine totale le operazioni di: ricerca di un elemento,
DettagliESERCIZI DI ALGORITMI E STRUTTURE DATI 2 Parte 2. Livio Colussi Dipartimento di Matematica Pura ed Applicata Università di Padova
ESERCIZI DI ALGORITMI E STRUTTURE DATI 2 Parte 2 Livio Colussi Dipartimento di Matematica Pura ed Applicata Università di Padova 19 maggio 2006 2 Esercizio 18 Perché in un B-albero non possiamo avere grado
DettagliAlgoritmi e Strutture Dati
Alberi Rosso-Neri (RB-Trees) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Alberi Rosso-Neri Altezza nera di un red-black tree Un albero
DettagliInformatica 3. Informatica 3. LEZIONE 27: Strutture ad albero avanzate. Lezione 27 - Modulo 1. Trie (1) Trie binario
Informatica 3 Informatica 3 LZION 27: trutture ad albero avanzate Lezione 27 - Modulo Modulo : Trie Modulo 2: lberi bilanciati Modulo 3: trutture dati spaziali Trie olitecnico di Milano - rof. ara omai
Dettagli