Code a priorità (Heap) Definizione Heapify (mantenimento coda a priorità) Costruire un Heap Insert, Maximum e Extract-Max

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Code a priorità (Heap) Definizione Heapify (mantenimento coda a priorità) Costruire un Heap Insert, Maximum e Extract-Max"

Transcript

1 Code a prortà (Heap) Defnzone Heapfy (mantenmento coda a prortà) Costrure un Heap Insert, Maxmum e Extract-Max

2 Coda a prortà (Heap) Una coda a prortà può essere rappresentato da un albero bnaro completo. La chave del padre è sempre maggore d quella de fgl: key() key(parent()). Albero bnaro completo: Sono rempt tutt lvell eccetto possblmente l ultmo. Altezza=Θ(log(n)) 6 Coda a prortà: 4 0 Il nodo a maggore prortà (con la chave pù grande) sta n cma. Nota: s può ragonare n manera analoga quando s pone che key() key(parent()). 4

3 Heap tramte un Array Una coda a prortà può essere mplementato tramte un array (A). A[PARENT()] A[]. PARENT(j). return LEFT(). return j/ RIGHT(). return + heap-sze[a] length[a] 0 0 A n

4 Heapfy (mantenmento coda a prortà) S sstema l elemento A[]: s suppone gl alber con radce LEFT() e RIGHT() sano degl Heap. HEAPIFY(A,) // sstema A[] nel Heap. l LEFT() // fglo sx. r RIGHT() // fglo dx. f l heap-sze[a] and A[l] > A[] // cerca l maggore fra padre e 4. then magg l // due fgl (se c sono ) 5. else magg 6. f r heap-sze[a] and A[r] > A[magg]. then magg r. f magg // l magg è uno de due fgl. then scamba A[] A[magg] 0. HEAPIFY(A,magg)

5 Esempo Heapfy All nzo s chama HEAPIFY(A,)

6 Esempo Heapfy Il costo n termne d tempo è nel caso peggo l altezza dell albero. O(h) = O(log(n))

7 BUILD-HEAP(A) Costrure l Heap. heap-sze[a] length[a] // // stratega bottom-up: dal basso verso l alto. for length[a]/ downto // dalla metà n su. do HEAPIFY(A,) // sotto la metà sono tutte fogle Il costo d HEAPIFY è O(log(n)) e vene chamato O(n) volte. Qund un lmte del caso peggore è O(n log(n)). In realtà, l caso peggore può essere stmato come O(n). n h h O( h) = O( n ) = O( n ) = O(n) = O( n) h + h+ h+ h= 0 h= log n log n h= 0 0 = Rappresenta l massmo numero d sottoalber pen ad altezza h (avendo a dsposzone n element)

8 Esempo costruzone Heap A S comnca da qua Fogle

9 Esempo costruzone Heap Stratega button-up: dal basso verso l alto s chama HEAPIFY su tutte nod ntern

10 Esempo costruzone Heap Stratega button-up: dal basso verso l alto s chama HEAPIFY su tutte nod ntern

11 Altre operazon MAXIMUM(A): rtorna l elemento a massma prortà, ossa quello n cma. EXTRACT-MAX(A): estrae l elemento a massma prortà, successvamente l Heap andrebbe sstemato INSERT(A): nsersce un nuovo elemento nel Heap.

12 MAXIMUM e EXTRACT-MAX MAXIMUM(A) ha un tempo d esecuzone costante, O() MAXIMUM(A) // resttusc l elem. a magg. prortà,. return A[] // ossa quello n cma EXTRACT-MAX(A) ha un tempo d esecuzone O(log(n)), dovuto alla chamata HEAPIFY(). EXTRACT-MAX(A) // Estrae elemento a maggore prortà. f heap-sze[a] < // heap vuoto?. then error heap underflow. max A[] // memorzza elem. In cma 4. A[] A[heap-sze[A]] // mett l ultmo elemento n cma 5. heap-sze[a] heap-sze[a] // heap dmnusce d elem. 6. HEAPIFY(A,) // HEAPIFY sul elem.. return max // resttusc l elem. a magg. prortà

13 HEAP-INSERT HEAP-INSERT(A, KEY) ha un tempo d esecuzone O(log(n)), nel caso peggore s rsale l albero dalla fogla alla radce. HEAP-INSERT(A, key) // Insersc elemento nell Heap. heap-sze[a] heap-sze[a] + // aumenta Heap d elemento. heap-sze[a] // nza dall elem. nserto (ultmo). whle > and A[PARENT()]<key // l nuovo elem. Vene fatto 4. do A[] A[PARENT()] // rsalre 5. PARENT() 6. A[] key // fno a trovare l suo posto

14 Insermento n un Heap HEAP-INSERT(A, 5) key=5 L Heap vene aumentato d un elemento. S procede po a rsalre l albero per trovare l suo posto Nuovo elemento key = 5 0 4

15 Insermento n un Heap HEAP-INSERT(A, 5) key=5 L Heap vene aumentato d un elemento. S procede po a rsalre l albero per trovare l suo posto

16 Consderazon La struttura dat Heap gestsce una coda a prortà. Vene estratto l elemento a maggore prortà (es. quello con chave maggore) S può nvertre la relazone con l padre, se key() key(parent()). In questo caso l elemento a maggore prortà è l elemento pù pccolo Heap-sort: algortmo d ordnamento che usa un Heap. S estrae ogn volta l elemento pù pccolo fno ad ottenere un vettore ordnato. Tempo O(n log(n)).

Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche:

Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche: Heapsort Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche: T(n) = O(n log(n)) Alg. Ordinamento ottimale Ordina in loco (niente

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 6 novembre 2008 Heap binari: definizione Un heap binario è una albero binario quasi completo

Dettagli

Algoritmi e Strutture Dati

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

Dettagli

Heap, heapsort e code a priorità. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Heap, heapsort e code a priorità. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Heap, heapsort e code a priorità Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Heap Definizione: albero binario con proprietà strutturale: quasi completo (tutti i livelli completi,

Dettagli

Albero binario: Ogni nodo ha zero, uno, o due successori (ordinati)

Albero binario: Ogni nodo ha zero, uno, o due successori (ordinati) Heap 1 Vittorio Maniezzo - Università di Bologna Alberi binari Albero binario: Ogni nodo ha zero, uno, o due successori (ordinati) Albero binario completo: Tutte le foglie hanno la stessa profondità e

Dettagli

ADT Coda con priorità

ADT Coda con priorità Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni

Dettagli

Problemi di ordinamento

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

Dettagli

In questa lezione. Code di priorità. [CLRS01] cap. 6 da pag. 114 a pag Prof. E. Fachini - Intr. Alg. lunedì 17 settembre 2012

In questa lezione. Code di priorità. [CLRS01] cap. 6 da pag. 114 a pag Prof. E. Fachini - Intr. Alg. lunedì 17 settembre 2012 In questa lezione Code di priorità [CLRS01] cap. 6 da pag. 114 a pag. 117 1 Coda di priorità: cos è? Una coda di priorità è una struttura dati dinamica che permette di gestire dei dati con chiave numerica,

Dettagli

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

Algoritmi e Strutture Dati. HeapSort

Algoritmi e Strutture Dati. HeapSort Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L

Dettagli

Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1

Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Algoritmi (9 CFU) (A.A. 2009-10) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Overview Definiamo la struttura dati heap Operazioni di costruzione e gestione di un heap Algoritmo Heapsort Code

Dettagli

Heap Ordinamento e code di priorità. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 9

Heap Ordinamento e code di priorità. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 9 Heap Ordinamento e code di priorità Heap: definizione Definizione. Uno Heap (binario) è un albero binario finito i cui vertici sono etichettati da elementi di un insieme linearmente ordinato (chiavi),

Dettagli

Algoritmi e Strutture Dati. HeapSort

Algoritmi e Strutture Dati. HeapSort Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene

Dettagli

Spesso sono definite anche le seguenti operazioni:

Spesso sono definite anche le seguenti operazioni: Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

Algoritmi basati sulla tecnica Divide et Impera

Algoritmi basati sulla tecnica Divide et Impera Qucksort Algortm basat sulla tecnca Dvde et Impera In questo corso: Rcerca bnara Mergesort (ordnamento) Qucksort (ordnamento) Moltplcazone d nter Moltplcazone d matrc (non n programma) NOTA: nonostante

Dettagli

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media Alcun esercz su algortm e programmazone Fondament d Informatca A Ingegnera Gestonale Unverstà degl Stud d Bresca Docente: Prof. Alfonso Gerevn Scrvere l algortmo e l dagramma d flusso per l seguente problema:

Dettagli

ALGORITMI E STRUTTURE DATI

ALGORITMI E STRUTTURE DATI ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~ orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 HEAP SORT StudentiDIA Forum

Dettagli

In questa lezione. Heap binario heapsort. [CLRS10] cap. 6, par Prof. E. Fachini - Intr. Alg.

In questa lezione. Heap binario heapsort. [CLRS10] cap. 6, par Prof. E. Fachini - Intr. Alg. In questa lezione Heap binario heapsort [CLRS10] cap. 6, par. 6.1-6.4!1 Heap binari Un heap binario è una struttura dati consistente di un array visto come un albero binario. A= 5 60 65 30 50 18 40 25

Dettagli

Gli heap. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

Gli 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

Dettagli

Allora v = v2 =

Allora v = v2 = Problema: a partre da due sequenze ordnate v1 e v2 d element voglamo costrurne una ordnata v con tutt gl element d v1 e v2 Algortmo rcorsvo: Se le due sequenze contengono element confronta prm due element

Dettagli

In 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 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

Dettagli

Handle di Funzioni Università degli Studi di Milano

Handle di Funzioni Università degli Studi di Milano Handle di Funzioni Versioni recenti di Matlab definiscono in modo pieno il tipo funzione, permetto di assegnare a variabili valori di tipo funzione definire funzioni che ricevono parametri di tipo funzione

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Insertion Sort Quicksort Heapsort Indice

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Code di priorità (Heap e heap_sort) m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi,

Dettagli

Code a priorità. Progettazione di Algoritmi Matricole congrue a 1. Docente: Annalisa De Bonis

Code 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

Dettagli

Le operazioni che vogliamo realizzare sono. Supporremo che una tabella T abbia i seguenti attributi: 1. Table(T): costruisce una tabella vuota T.

Le operazioni che vogliamo realizzare sono. Supporremo che una tabella T abbia i seguenti attributi: 1. Table(T): costruisce una tabella vuota T. tabelle dnamche Tabelle dnamche Spesso non s conosce a pror quanta memora serve per memorzzare una struttura dat (tabella d dat ~ array, tabella hash, heap, stack, ecc.. Può captare qund d allocare una

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Esercitazione 7 Domenico Fabio Savo 1 Esercitazione: heap Abbiamo visto come utilizzare i MAX-HEAP nell'algoritmo di ordinamento heapsort che permette di ordinare un array di

Dettagli

Esercitazione 3. Heapsort

Esercitazione 3. Heapsort Esercitazione Heapsort Heapsort Algoritmo di ordinamento che utilizza una struttura dati detta heap per la gestione delle informazioni Tempo di esecuzione O(n lg n) Heap (binario) = struttura dati composta

Dettagli

Specifica, progetto e verifica della correttezza di algoritmi iterativi. Ragionamenti su di un algoritmo. Il metodo delle asserzioni (Floyd)

Specifica, progetto e verifica della correttezza di algoritmi iterativi. Ragionamenti su di un algoritmo. Il metodo delle asserzioni (Floyd) Specfca, progetto e verfca della correttezza d algortm teratv Il metodo delle asserzon Ragonament su d un algortmo Ragonare sulla specfca d un algortmo data con pre e post-condzon serve a: (a posteror)

Dettagli

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media Alcun esercz su algortm e programmazone Fondament d Informatca A Ingegnera Gestonale Unverstà degl Stud d Bresca Docente: Prof. Alfonso Gerevn Scrvere l algortmo e l dagramma d flusso per l seguente problema:

Dettagli

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114 In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi

Dettagli

Algoritmi di Ordinamento. Fondamenti di Informatica Prof. Ing. Salvatore Cavalieri

Algoritmi di Ordinamento. Fondamenti di Informatica Prof. Ing. Salvatore Cavalieri Algortm d Ordnamento Fondament d Informatca Prof. Ing. Salvatore Cavaler 1 Introduzone Ordnare una sequenza d nformazon sgnfca effettuare una permutazone n modo da rspettare una relazone d ordne tra gl

Dettagli

Gli heap. Sommario. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

Gli heap. Sommario. 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 Matteo SONZA

Dettagli

Algoritmi e Strutture Dati. Lezione 4

Algoritmi e Strutture Dati. Lezione 4 Algoritmi e Strutture Dati Lezione www.iet.unipi.it/a.virdis Antonio Virdis a.virdis@iet.unipi.it Sommario Heap Ordinamento tramite Heap Soluzioni Esercizi heap 3 5 6 7 8 0 9 3 5 3 heap 3 5 6 7 8 0 9 heap

Dettagli

Heap e Code di Priorità

Heap e Code di Priorità Heap e Code di Priorità heap heap = catasta condizione di heap 1. albero binario perfettamente bilanciato 2. ogni nodo contiene una chiave maggiore o eguale di quelle presenti negli eventuali figli non

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Prof. Aniello Murano Ordinamento, Ricorsione e Code di Priorità Corso di Laurea Codice insegnamento Email docente Anno accademico Informatica 13917 murano@na.infn.it

Dettagli

Introduzione a MATLAB

Introduzione a MATLAB Unverstà degl Stud d Napol Federco II CdL Ing. lettrca Corso d Laboratoro d Crcut lettrc Introduzone a MATLAB Lezone n.5 Dr. Carlo Petrarca Dpartmento d Ingegnera lettrca e Tecnologe dell Informazone Unverstà

Dettagli

Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi. Parte prima

Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi. Parte prima Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi Parte prima 1) Si dimostri il teorema sulla limitazione inferiore per il tempo asintotico di esecuzione nel caso

Dettagli

Statistica e calcolo delle Probabilità. Allievi INF

Statistica e calcolo delle Probabilità. Allievi INF Statstca e calcolo delle Probabltà. Allev INF Proff. L. Ladell e G. Posta 06.09.10 I drtt d autore sono rservat. Ogn sfruttamento commercale non autorzzato sarà perseguto. Cognome e Nome: Matrcola: Docente:

Dettagli

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Gestone della produzone e della supply chan Logstca dstrbutva Paolo Dett Dpartmento d Ingegnera dell Informazone Unverstà d Sena Un algortmo per l flusso su ret a costo mnmo: l smplesso su ret Convergenza

Dettagli

Heap e code di priorità

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

Dettagli

RICHIAMI SULLA RAPPRESENTAZIONE IN COMPLEMENTO A 2

RICHIAMI SULLA RAPPRESENTAZIONE IN COMPLEMENTO A 2 RICHIAMI SULLA RAPPRESENTAZIONE IN COMPLEMENTO A La rappresentazone n Complemento a Due d un numero ntero relatvo (.-3,-,-1,0,+1,+,.) una volta stablta la precsone che s vuole ottenere (coè l numero d

Dettagli

Code 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. 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

Dettagli

Algoritmo di Carlier- Pinson per problemi di Job Shop Scheduling: un esempio

Algoritmo di Carlier- Pinson per problemi di Job Shop Scheduling: un esempio Formulazone e Notazon Algortmo d Carler- Pnson er roblem d Job Sho Schedulng: un esemo Notazon o C M ( o r, q -esma oerazone del ob Temo d rocessamento d o Macchna che deve rocessare o Clque (nseme d oerazon

Dettagli

Il problema dell'ordinamento. Algoritmi e Laboratorio a.a Lezioni. prof. Elio Giovannetti

Il problema dell'ordinamento. Algoritmi e Laboratorio a.a Lezioni. prof. Elio Giovannetti Unverstà d Torno Facoltà d Scenze MFN Corso d Stud n Informatca Currculum SR (Sstem e Ret) Algortm e Laboratoro a.a. 25-6 Lezon prof. Elo Govannett Parte 7 Algortm d ordnamento elementar (quadratc). versone

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratoro d Matematca e Informatca 1 Matteo Mondn Antono E. Porreca matteo.mondn@gmal.com porreca@dsco.unmb.t Dpartmento d Informatca, Sstemstca e Comuncazone Unverstà degl Stud d Mlano - Bcocca 10 Gennao

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Algoritmi e Strutture Dati

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)

Dettagli

Alberi. 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. 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;

Dettagli

Scrivere programmi corretti

Scrivere programmi corretti Scrvere programm corrett L esempo della rcerca bnara o dcotomca J. Bentley, Programmng Pearls, Addson Welsey. 1 Schema processo produzone funzone teratva Algortmo n pseudo-codce Indvduazone nvarante Codfca

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Algoritmi e Strutture Dati. Alberi Binari di Ricerca

Algoritmi e Strutture Dati. Alberi Binari di Ricerca Algortm e Strutture Dat Alber Bar d Rcerca Alber bar d rcerca Motvazo gestoe e rcerche grosse quattà d dat lste, array e alber o soo adeguat perché effcet tempo O) o spazo Esemp: Matemeto d archv DataBase)

Dettagli

Heap binomiali. Oltre alle precedenti operazioni fondamentali degli heap riunibili, sugli heap binomiali definiremo anche le due ulteriori operazioni:

Heap binomiali. Oltre alle precedenti operazioni fondamentali degli heap riunibili, sugli heap binomiali definiremo anche le due ulteriori operazioni: Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea un heap vuoto. Insert(H, ) : aggiunge il nodo allo heap. Minimum(H) : ritorna

Dettagli

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Appello dell 8 Febbraio 2005 Esercizio 1 (ASD) 1. Dire quale delle seguenti affermazioni è vera giustificando la risposta. (a) lg

Dettagli

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet francesc

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet   francesc Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc m.franceschet@unich.it Algoritmi e Strutture di Dati I 2 Problema dell ordinamento

Dettagli

Il logaritmo discreto in Z p Il gruppo moltiplicativo Z p delle classi resto modulo un primo p è un gruppo ciclico.

Il logaritmo discreto in Z p Il gruppo moltiplicativo Z p delle classi resto modulo un primo p è un gruppo ciclico. Il logartmo dscreto n Z p Il gruppo moltplcatvo Z p delle class resto modulo un prmo p è un gruppo cclco. Defnzone (Logartmo dscreto). Sa p un numero prmo e sa ā una radce prmtva n Z p. Sa ȳ Z p. Il logartmo

Dettagli

Errata corrige del libro Fondamenti di Informatica in Java

Errata corrige del libro Fondamenti di Informatica in Java corrge del lbro Fondament d Informatca n Java Emlo D Gacomo, Walter Ddmo Captolo 1 R1 R2 R3 Rn PC IR PSW Untà d controllo Pag. 23, Fgura 1.2 Bus nterno ALU MAR MDR al bus dat al bus ndrzz al bus d controllo

Dettagli

Algoritmi e Strutture Dati Laboratorio 20/10/2008. Prof. Pier Luca Lanzi

Algoritmi e Strutture Dati Laboratorio 20/10/2008. Prof. Pier Luca Lanzi Algoritmi e Strutture Dati Laboratorio 20/10/2008 Primo Esercizio 2 Scrivere un programma per misurare il tempo necessario per ordinare un vettore di interi contenente 10-10 7 elementi utilizzando l insertion

Dettagli

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 LEZIONE 16: Heap - Codifica di Huffmann Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 Lezione 16 - Modulo 1 Heap e code di priorità Introduzione

Dettagli

Il procedimento può essere pensato come una ricerca in un insieme ordinato, il peso incognito può essere cercato con il metodo della ricerca binaria.

Il procedimento può essere pensato come una ricerca in un insieme ordinato, il peso incognito può essere cercato con il metodo della ricerca binaria. SCELTA OTTIMALE DEL PROCEDIMENTO PER PESARE Il procedmento può essere pensato come una rcerca n un nseme ordnato, l peso ncognto può essere cercato con l metodo della rcerca bnara. PESI CAMPIONE IN BASE

Dettagli

DIZIONARI. Alberi Binari di Ricerca Tabelle Hash. Struttura dati Dizionario. Implementazione di un Dizionario. Implementazione di un Dizionario

DIZIONARI. Alberi Binari di Ricerca Tabelle Hash. Struttura dati Dizionario. Implementazione di un Dizionario. Implementazione di un Dizionario Strttra dat Dzonaro DIZIONARI Alber Bnar d Rcerca Tabelle Hash Dzonaro - strttra dat dnamca ogn elemento ha na chave assocata operazon d base Search(S, k) rtorna n pntatore all elemento con chave k o Nl

Dettagli

Algoritmi e Strutture di Dati

Algoritmi 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,

Dettagli

Principi di ingegneria elettrica. Lezione 2 a

Principi di ingegneria elettrica. Lezione 2 a Prncp d ngegnera elettrca Lezone 2 a Defnzone d crcuto elettrco Un crcuto elettrco (rete) è l nterconnessone d un numero arbtraro d element collegat per mezzo d fl. Gl element sono accessbl tramte termnal

Dettagli

Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4

Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Heap sort; ordinamento senza confronti @ G. Gini 2013 Ordinamento per confronti: complessita' Esistono altri algoritmi di ordinamento

Dettagli

heap heap heap? max- e min-heap concetti ed applicazioni heap = catasta condizione di heap non è una struttura ordinata

heap heap heap? max- e min-heap concetti ed applicazioni heap = catasta condizione di heap non è una struttura ordinata heap heap concetti ed applicazioni heap = catasta condizione di heap 1. albero binario perfettamente bilanciato 2. tutte le foglie sono a sinistra ma non è un BST!! 3. ogni nodo contiene una chiave maggiore

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto

Dettagli

Un heap binario è un albero binario con le seguenti caratteristiche:

Un heap binario è un albero binario con le seguenti caratteristiche: Heap Un heap binario è un albero binario con le seguenti caratteristiche: È quasi completo: tutti i livelli, tranna al più l ultimo sono completi e le foglie dell ultimo livello sono tutte adossate a sinistra.

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare alfabeticamente lista di nomi, o insieme

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi e Strutture Dati Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Algoritmi di ordinamento Esempi: ordinare una lista di nomi alfabeticamente, o

Dettagli

heap concetti ed applicazioni

heap concetti ed applicazioni heap concetti ed applicazioni ADT coda di priorità operazioni getfirst restituisce l'elemento nella struttura con massima priorità deletefirst cancella l'elemento nella struttura con massima priorità insert

Dettagli

Algoritmi e Strutture Dati. Alberi di Ricerca Alberi Bilanciati I (Alberi AVL)

Algoritmi 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)

Dettagli

Struttura di dati che può essere usata sia come dizionario, sia come coda con priorità

Struttura di dati che può essere usata sia come dizionario, sia come coda con priorità Albero binario di ricerca Struttura di dati che può essere usata sia come dizionario, sia come coda con priorità Proprietà: sia x un nodo di un (sotto)albero binario di ricerca Se y è un nodo del sottoalbero

Dettagli

Realizzazione di FSM sincrone. Sommario. Introduzione. Sommario. M. Favalli

Realizzazione di FSM sincrone. Sommario. Introduzione. Sommario. M. Favalli Realzzazone d FSM sncrone M. Favall Engneerng Department n Ferrara Realzzazone d FSM Anals e sntes de sstem dgtal / Introduzone Realzzazone d FSM Anals e sntes de sstem dgtal 2 / Una volta ottenuto l automa

Dettagli

lezione 9 min-heap binario Heap e Alberi posizionali generali

lezione 9 min-heap binario Heap e Alberi posizionali generali lezione 9 Heap e Alberi posizionali generali min-heap binario Un min-heap è un albero binario quasi completo in cui ogni nodo i diverso dalla radice soddisfa la seguente proprietà: il valore memorizzato

Dettagli

Server Ricorsivii i. Dott. Delfina Malandrino.

Server Ricorsivii i. Dott. Delfina Malandrino. A.A. 2007/2008 Rcorsv delmal@da.unsa.t http://ss.da.unsa.t/~delmal Dpartmento d Informatca ed Applcazon R.M. Capocell Unverstà degl Stud d Salerno Iteratv Un server teratvo gestsce una sngola connessone

Dettagli

Selection Sort (minsort)

Selection Sort (minsort) Selection Sort (minsort) function A = minsort2(a) costo n = length(a); n for i = 1:(n-1) emin = A(i); n-1 pos=i; n-1 for j = (i+1):n m if(a(j) < emin) m emin = A(j); s pos = j; s end end tmp = A(i); n-1

Dettagli

Alberi di ricerca binari

Alberi 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

Dettagli

Lezione n 18. Lezioni di Ricerca Operativa. Corso di Laurea in Informatica Università di Salerno. Prof. Cerulli Dott.ssa Gentili Dott.

Lezione n 18. Lezioni di Ricerca Operativa. Corso di Laurea in Informatica Università di Salerno. Prof. Cerulli Dott.ssa Gentili Dott. Lezon d Rcerca Operatva Corso d Laurea n Informatca Unverstà d Salerno Lezone n 18 - Teora de graf: defnzon d base - Problema del flusso a costo mnmo Prof. Cerull Dott.ssa Gentl Dott. Carrabs Teora de

Dettagli

Visualizzazione di dati

Visualizzazione di dati Visualizzazione di dati MATLAB fornisce un estesa serie di strumenti per la visualizzazione di dati in due e tre dimensioni. Questi strumenti consentono di: Creare grafici Editare i grafici ed esplorare

Dettagli

Efficient Algorithms for Mining Outliers from Large Data Sets

Efficient Algorithms for Mining Outliers from Large Data Sets Effcent Algorthms for Mnng Outlers from Large Data Sets Artcolo d S. Ramaswamy, R. Rastog, K. Shm Presentazone a cura d Marcoln Serena, Marno Renato 1 Indce dell ntervento Defnzon d Outlers Algortm Rsultat

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso

Dettagli

Modulo 9: Scheduling

Modulo 9: Scheduling Modulo 9: Schedulng Concett d base Crter d schedulng Algortm d schedulng Schedulng n UNIX Real-Tme Schedulng 9. Concett d base Il massmo utlzzo della CPU s ottene con la multprogrammazone. Cclo CPU I/O:

Dettagli

Dati e Algoritmi 1: A. Pietracaprina. Priority Queue (II parte)

Dati e Algoritmi 1: A. Pietracaprina. Priority Queue (II parte) Dati e Algoritmi 1: A. Pietracaprina Priority Queue (II parte) 1 Costruzione di uno heap a partire da n entry date Input. Array P con n entry P[1 n] Output. Array P riorganizzato per rappresentare uno

Dettagli

Per semplicità eliminiamo le ripetizioni nell'albero.

Per semplicità eliminiamo le ripetizioni nell'albero. Albero binario di ricerca 20 40 100 95 Un albero binario di ricerca é un albero binario in cui ogni nodo ha un etichetta minore o uguale a quelle dei nodi nel sottoalbero radicato nel figlio destro e maggiore

Dettagli

Algoritmi e Strutture Dati. Capitolo 6 Il problema del dizionario

Algoritmi 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

Dettagli

Algoritmi 25 Febbraio Rispondere alle domande usando lo spazio designato. NON USARE ALTRI FOGLI.

Algoritmi 25 Febbraio Rispondere alle domande usando lo spazio designato. NON USARE ALTRI FOGLI. Algoritmi 25 Febbraio 2011 Prof.ssa M. Anselmo Università di Salerno Cognome: Nome: Matricola: Rispondere alle domande usando lo spazio designato. NON USARE ALTRI FOGLI. Spazio riservato alla correzione

Dettagli

Algoritmi e Strutture Dati. Strutture Dati Elementari

Algoritmi e Strutture Dati. Strutture Dati Elementari Algoritmi e Strutture Dati Strutture Dati Elementari Insiemi Un insieme è una collezione di oggetti distinguibili chiamati elementi (o membri) dell insieme. a S significa che a è un membro de (o appartiene

Dettagli

Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni:

Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni: Anals ammortzzata Anals ammortzzata S consdera l tempo rchesto per esegure, nel caso pessmo, una ntera sequenza d operazon. Se le operazon costose sono relatvamente meno frequent allora l costo rchesto

Dettagli

Multi-way search trees

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(

Dettagli

Sommatori: Full Adder. Adder. Architetture aritmetiche. Ripple Carry. Sommatori: Ripple Carry [2] Ripple Carry. Ripple Carry

Sommatori: Full Adder. Adder. Architetture aritmetiche. Ripple Carry. Sommatori: Ripple Carry [2] Ripple Carry. Ripple Carry CEFRIEL Consorzo per la Formazone e la Rcerca n Ingegnera dell Informazone Poltecnco d Mlano s Sommator: x y c x y c x y c x y c x y c Archtetture artmetche s x y Sommator:, Rpple Carry Sommator: Carry

Dettagli

Complementi di Algoritmi e Strutture Dati. Soluzioni prova scritta 7 giugno 2017

Complementi di Algoritmi e Strutture Dati. Soluzioni prova scritta 7 giugno 2017 Complementi di Algoritmi e Strutture Dati (III anno Laurea Triennale - a.a. 2016/17) Soluzioni prova scritta 7 giugno 2017 Esercizio Union find (punti 6) Considerare la foresta union-find sottostante e

Dettagli

Strutture dati - Parte 3

Strutture dati - Parte 3 Strutture dati - Parte 3 Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 21 luglio 2017 Mucchi (Heaps) Una struttura parzialmente ordinata Un mucchio (heap) è una struttura

Dettagli

Controllo e scheduling delle operazioni. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Controllo e scheduling delle operazioni. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Controllo e schedulng delle operazon Paolo Dett Dpartmento d Ingegnera dell Informazone Unverstà d Sena Organzzazone della produzone PRODOTTO che cosa ch ORGANIZZAZIONE PROCESSO come FLUSSO DI PRODUZIONE

Dettagli