T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008

Documenti analoghi
T 1 =1. n 6 n. T n =3 T. Esercizio 1 (6 punti)

Alberi Binari di Ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

Progettazione di algoritmi

Esercitazione 6. Alberi binari di ricerca

Grafi pesati Minimo albero ricoprente

Problemi, istanze, soluzioni

Heap e code di priorità

UNIVERSITA DEGLI STUDI DI PERUGIA

Introduzione agli Algoritmi ed alle Strutture Dati Anno Accademico 2015/2016 Appello 23/6/2016

Grafi (non orientati e connessi): minimo albero ricoprente

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

Alberi binari e alberi binari di ricerca

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Esempio : i numeri di Fibonacci

TRIE (albero digitale di ricerca)

Alberi binari di ricerca

Algoritmi e Principi dell Informatica

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

Strutture di accesso ai dati: B + -tree

Algoritmi e Strutture Dati. HeapSort

Analisi ammortizzata (Tarjan in 1985)

Esercizi Capitolo 7 - Hash

Un esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem

Fondamenti di Internet e Reti

Sviluppo di programmi

Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Riassunto sui dizionari

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

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

Algoritmi e Strutture Dati

Esercitazione sui grafi di precedenza, fork/join, cobegin/coend.

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I. 25 Giugno 2008 (Tempo a disposizione 2h ; su 32 punti)

Algoritmi e Strutture Dati

DISPENSE DI PROGRAMMAZIONE

Algoritmo basato su cancellazione di cicli

Prova in itinere di Metodi di Ottimizzazione AA 2007/2008: compito A

lezione 9 min-heap binario Heap e Alberi posizionali generali

Corso di Informatica di Base

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Massimo Benerecetti Tabelle Hash: gestione delle collisioni

Algoritmi e Strutture Dati

FILE E INDICI Architettura DBMS

Esercizi di Algoritmi e Complessità

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort

Esercizi per il corso di Algoritmi e Strutture Dati

QuickSort (1962, The Computer Journal)

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Dispensa di Informatica II.1

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Esempio: rappresentare gli insiemi

Grafi: visita generica

alberi binari di ricerca (BST)

Parte V: Rilassamento Lagrangiano

Algoritmi. Matricole dispari Prof.ssa Anselmo. Pre-appello del 15 Gennaio Attenzione:

Progettazione di algoritmi

Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

INFORMATICA SANITARIA Domande ed Esercizi di Preparazione all Esame (Parti 8-17)

Algoritmi e giochi combinatori

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

RETI DI CALCOLATORI II

Costruzione di espressioni regolari 4

Alberi Bilanciati di Ricerca

CORSO DI STATISTICA (parte 1) - ESERCITAZIONE 2

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015

1.1 Concetti base dell Informatica: Algoritmi

ADT Coda con priorità

Linguaggi e Grammatiche Liberi da Contesto

STRUMENTI MATEMATICI

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Algoritmi e soluzione di problemi

Distanza di Edit. Speaker: Antinisca Di Marco Data:

1 Esercizi in pseudocodice

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola:

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

ITLCC 2006/10/6 19:09 page 7 #3

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte)

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

GUIDA MAGAZZINO FACILE

Parte 6 Esercitazione sull accesso ai file

Comunicazione Sistema Tessera Sanitaria

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 15/9/2016

Algoritmi e strutture di dati 2

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

I Tipi di Dato Astratto

Macchine sequenziali. Automa a Stati Finiti (ASF)

Strutture dati e loro organizzazione. Gabriella Trucco

Rappresentazione di numeri interi

Esercizi di Algoritmi e Strutture Dati

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.

Statistica. Alfonso Iodice D Enza

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

Esercizi proposti 10

Diagrammi a blocchi 1

VISITA IL SITO PER ALTRO MATERIALE E GUIDE

Pumping lemma per i linguaggi Context-free

Transcript:

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Risolvere con almeno due metodi diversi la seguente relazione di ricorrenza T = T n = T n n log n

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Descrivere l'algoritmo del Quickselect randomizzato per la determinazione della statistica di ordine k di un insieme, illustrando le somiglianze con il quicksort, e indicare la sua complessità computazionale. Applicarlo all'array di interi A={0,,,, 0, 0,, 0,,,, 6, 6} per la determinazione del mediano illustrando le varie chiamate ricorsive. (Per semplicità, ad ogni chiamata ricorsiva selezionare come pivot il primo elemento della porzione di array che viene considerata, anziché selezionarlo casualmente). Sol: Il pivot inizialmente è in posizione 0: 0 6 0 0 0 0 0 6 6 e la chiamata della funzione di quick select sarà: qs(0,,6) dopo il partition l'array avrà l'aspetto seguente: 0 6 0 0 0 0 0 6 6 essendo la posizione del mediano (6) a destra della posizione del pivot (0) si ricorre sulla porzione destra dell'array: qs(,,6) 0 6 0 0 6 0 0 0 il pivot () dopo il partition è finito in posizione e si ricorrerà sulla porzione sinistra dell'array: qs(,,6) 0 6 0 0 0 6 0 0 il pivot (6) dopo il partition è finito in posizione 6 che è la posizione del mediano e l'algoritmo termina.

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Si consideri l'inserimento delle chiavi 0, 6,,, 0, 0,, 0,,,, 6,, 00, in una tabella hash di lunghezza M = usando l'indirizzamento aperto con funzione hash primaria h (k) = k mod M. Si scrivano le funzioni di scansione della tabella e si illustri l'evoluzione della tabella in seguito all'inserimento di queste chiavi nel caso di: i. scansione lineare ii. hashing doppio con h (k)= + (k mod (M-)) Discutere i vantaggi e gli svantaggi dei metodi di scansione. Sol: Nella scansione lineare la sequenza di scansione è data da p(k,i) =(h (k) + i) mod M dove p(i) è la posizione in cui si cerca di inserire la chiave k all'i-esimo tentativo e M è la dimensione della tabella. k h(k) Sequenza di scansione N. tentativi 0 6 6 6 6 6,, 0 0 0 0 0 0,, 0 0 0,,,, 6,,0,,,,6,,,,0,, 0 00,,,,,6,,,,0,,,, Totale tentativi Il numero medio di accessi per inserimento è n= =, acc/ins e la tabella avrà il seguente aspetto: 0 6 0 6 0 0 0 6 0 6 00 nul nul

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Nel secondo caso la funzione di scansione è: p(k,i) =(h (k) + i h (k)) mod M e la successione delle scansioni può essere riassunta dalla tabella seguente: k h (k) h (k) Sequenza di scansione N. tentativi 0 6 6 6 6 0 6,6 0 0 0 0 0 0, 0 0 0,,6,, 6 00 6,,, Totale tentativi Il numero medio di accessi per inserimento è n= =,6 acc /ins e la tabella avrà il seguente aspetto: 0 6 0 6 0 0 0 6 6 nul 0 00 nul

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Descrivere l'evoluzione di un B-tree di grado minimo t= quando, partendo dalla struttura vuota, la successione di inserimento delle chiavi è la seguente: 0, 0, 0,,, 6, 0,, 0, 0, 0,,, 6,,. Nella situazione in cui si trova la struttura, qual'è il minimo numero inserimenti necessari a provocare lo split della radice? Successivamente eseguire le cancellazioni di e 6. Evidenziare nelle varie fasi la struttura del B-tree. Riassumere i tempi di esecuzione delle varie operazioni sui B-tree.

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Illustrare l'algoritmo di Kruskal (in pseudocodice) e la sua complessità computazionale in funzione della rappresentazione del grafo. Dato il grafo pesato rappresentato nella figura mostrare l'evoluzione dell'algoritmo di Kruskal evidenziando le strutture dati associate, la marcatura (colorazione) degli archi, l'albero ricoprente. 6 Sol: Il primo passo è l'ordinamento degli archi in ordine crescente di peso: arco peso (,) (,) (6,) (,) (,) (,) (,) (,) (,) (,6) (,) (6,) (,) (,) (,) Successivamente si procede all'unione dei vari alberi (inizialmente tutti alberi nodo) con la struttura union-find: union(find(),find())=union(,) union(find(),find())=union(,) 6 6

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 union(find(6),find())=union(6,) union(find(),find())=union(,) union(find(),find())=union(,) l'arco viene colorato di rosso. union(find(),find())=union(,) union(find(),find())=union(,6) union(find(),find())=union(,) dove il nodo è risalito per la path compression durante la find(). 6 6 6 6 6 6 6 6 6 6 6 6

A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 union(find(),find())=union(,) 6 6 le successive union fanno colorare di rosso i relativi archi visto che l'insieme dei nodi è diventato unitario e si è formato l'albero. Al termine la colorazione del grafo sarà: 6 e il peso dell'albero è pari a.