Calcolo Parallelo e Distribuito
|
|
|
- Ricardo Valle
- 7 anni fa
- Visualizzazioni
Transcript
1 Calcolo Parallelo e Distribuito 1
2 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 2
3 Esempio: input L= ( 25,7,1,9,81,3,28,12,6,20 ) output L= ( 1,3,6,7,9,12,20,25,28,81 ) (ordinamento crescente di 10 numeri interi) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 3
4 Qual è l algoritmo sequenziale? selection sort insertion sort bubble sort. O(n) T(n) O(n 2 ) confronti Bitonic-merge sort Quick sort Merge sort Heap sort O(n log 2 n) confronti O(nlogn) T(n) O(n 2 ) confronti O(nlogn) confronti Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 4
5 Punti da analizzare: 1. Algoritmo algoritmo per l ordinamento di di un un vettore bitonico mediante i Bitonic il Bitonic Sort Sort 2. Algoritmo per l ordinamento un vettore qualsiasi mediante il General Bitonic Sort 3. Algoritmo Parallelo per l ordinamento di un vettore qualsiasi (Parallel General Bitonic Sort) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 5
6 Cos è un vettore bitonico? S= 2, 4, 5, 7, 9, 8, 6, 3, 1, 0 Ordinati in senso crescente Ordinati in senso decrescente S è un vettore bitonico Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 6
7 Cos è un vettore bitonico? S= 8, 6, 3, 1, 0, 2, 4, 5, 7, 9 Ordinati in senso decrescente Ordinati in senso crescente S è un vettore bitonico Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 7
8 Cos è un vettore bitonico? S= s 1 s 2 s 3.s n èun vettore bitonico Definizione Esiste un indice k (1 k n) tale che S= s 1 s 2 s.s 3 s k n s 1 s 2 s 3. s k s k+1 s k+2 s k+3. s n (se k=n il vettore si dice MONOTONICO) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 8
9 Cos è un vettore bitonico? S= s 1 s 2 s 3.s n èun vettore bitonico Definizione Esiste un indice k (1 k n) tale che S= s 1 s 2 s.s 3 s k n s 1 s 2 s 3. s k s k+1 s k+2 s k+3. s n (se k=n il vettore si dice MONOTONICO) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 9
10 Come ordinare un vettore bitonico? BBS: IDEA trasformare il vettore di lunghezza n= 2 q in un insieme ordinato di coppie di elementi Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 10
11 Come ordinare un vettore bitonico? BBS: IDEA L algoritmo si basa su un procedimento di tipo Divide and conquer: L operazione di base (confronto scambio) viene applicata ricorsivamente ai sottovettori di lunghezza uguale alla metà di quella precedente Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 11
12 Come ordinare un vettore bitonico? BBS: IDEA A partire dalle 2 metà (già ordinate) Si confrontano gli elementi omologhi scambiando gli elementi di ciascuna coppia se non si trovano nell ordine desiderato. Si ripete questo procedimento applicandolo separatamente a ciascuna metà. Si prosegue fino a quando si arriva ad applicarlo a coppie di elementi. Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 12
13 BBS: Ordinamento di un vettore bitonico ad ogni passo e per ogni coppia, si effettuano operazioni di compare-exchange compare: confronto exchange: Scambio Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 13
14 BBS: Ordinamento di un vettore bitonico due tipi di compare-exchange Compare Exchange Low (Co-Ex-Lo) Se si vuole ordinare la coppia in senso crescente Compare Exchange High (Co-Ex-Hi) Se si vuole ordinare la coppia in senso decrescente (min, max) (max, min) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 14
15 BBS: Ordinamento crescente di un vettore bitonico Esempio: n=8= è un vettore bitonico Passo 1 si considerano i due sottovettori della I e della II metà e si confrontano gli elementi omologhi si spostano i più piccoli a sinistra e i più grandi a destra CO-EX-LO Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 15
16 BBS:Ordinamento crescente di una lista bitonica Applichiamo il Co-Ex-Lo passo min (2, 9 ) = 2 max ( 2, 9) = 9 min (4, 7 ) = 4 max ( 4, 7) = 7 min (6, 5 ) = 5 max ( 6, 5 ) = 6 min (8, 3 ) = 3 max ( 8, 3 ) = 8 Il vettore iniziale è composto da due vettori bitonici Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 16
17 BBS: Ordinamento crescente di una lista bitonica Passo 2 Si considerano i 2 sottovettori bitonici costruiti al Passo 1 Su ciascuno si applica il procedimento precedente si spostano i più piccoli (di ciascuna metà) a sinistra e i più grandi a destra CO-EX-LO Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 17
18 BBS:Ordinamento crescente di una lista bitonica Fine Passo min (2, 5 ) = 2 max ( 2, 5) = 5 min (9, 6) = 6 max ( 9, 6) = 9 min (4, 3 ) = 3 max ( 4, 3) = 4 min (7, 8) = 7 max ( 7, 8) = 8 Il vettore iniziale è composto da 4 sottovettori bitonici Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 18
19 BBS:Ordinamento crescente di una lista bitonica Passo 3 Si considerano i 4 sottovettori bitonici costruiti al Passo Su ciascuno si applica il procedimento precedente si spostano i più piccoli (di ciascuna coppia) a sinistra e i più grandi a destra CO-EX-LO Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 19
20 BBS:Ordinamento crescente di una lista bitonica min (2, 3 ) = 2 max ( 2, 3) = 3 min (5, 4 ) = 4 max ( 5, 4) = 5 min (6, 7 ) = 6 max ( 6, 7) = 7 min (9, 8 ) = 8 max ( 9, 8) = 9 Fine III passo vettore ordinato Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 20
21 Qual è la complessità di tempo? L algoritmo è costituito da log 2 n passi Ad ogni passo si effettuano n/2 Co-Ex La complessità di tempo dell algoritmo BBS è O(n log 2 n) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 21
22 Punti da analizzare: 1. Descrizione dello schema per l ordinamento Sequenziale di una vettore bitonico (Bitonic Sort) 2. Descrizione dello schema per l ordinamento Sequenziale di una vettore lista generica qualsiasi (General Bitonic Sort ) 3. Descrizione dello schema per l ordinamento Parallelo di un vettore qualsiasi (Parallel General Bitonic Sort) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 22
23 Come ordinare un vettore qualsiasi? GBS: IDEA Trasformare il vettore in uno bitonico Ordinare il vettore bitonico con il BBS Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 23
24 GBS: fase a Partizioniamo il vettore in 4 coppie ovvero in 4 sottosequenze bitoniche di lungh = 2 e ordiniamole in modo da avere 2 sottosequenze bitoniche di lungh = 4 Co-Ex-Lo Sequenza bitonica Sequenza bitonica Co-Ex-Hi Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 24
25 GBS: fase a - STEP Co-Ex-Lo Co-Ex-Hi Sequenza bitonica l=4 Sequenza bitonica l=4 Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 25
26 GBS: fase a - STEP Ordiniamo ciascuno dei 2 sottovettori (con il BBS) in modo da avere un unico vettore bitonico Il primo in ordine crescente il secondo in ordine decrescente. Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 26
27 GBS: fase a - STEP 1 Passo j=1 Co-Ex-Lo Passo i=2, j=1 Co-Ex-Hi Passo j= Passo i=2, j= Co-Ex-Lo Co-Ex-Hi Sotto sequenza ordinata in modo crescente Sotto sequenza ordinata in modo decrescente Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 27
28 GBS: fase b - STEP 1 Applichiamo il BBS al vettore bitonico Co-Ex-Lo Passo j=1 Passo j=2 Co-Ex-Lo Co-Ex-Lo Passo j= Lista globalmente ORDINATA Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 28
29 Qual è la complessità di tempo? L algoritmo è costituito da log 2 n passi Ad ogni passo si utilizza l algoritmo BBS su sequenze di lunghezza minore di n, la cui complessità di tempo è O(n log 2 n) La complessità di tempo dell algoritmo GBS è O(n log 22 n) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 29
30 Punti da analizzare: 1. Descrizione dello schema per l ordinamento Sequenziale di una lista bitonica (Bitonic Sort) 2. Descrizione dello schema per l ordinamento Sequenziale di una lista generica (General Bitonic Sort ) 3. Descrizione dello schema per l ordinamento Parallelo di una lista generica (Parallel General Bitonic Sort) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 30
31 Esempio: p=2 Distribuiamo il vettore L= ( 25,7,1,9,81,3,28,12,6,20 ) P 0 P Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 31
32 PGBS:Ordinamento di un vettore IDEA DI BASE DELL ALGORITMO PARALLELO l operazione di confronto scambio [ che nell algoritmo sequenziale opera su una coppia di componenti a < b ] viene ora applicata ad una coppia di processori In che senso P 0 < P 1? Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 32
33 PGBS:Ordinamento di un vettore P 0 < P 1 Tutti gli elementi di P 0 sono minori di tutti gli elementi di P 1 Se gli elementi di P 0 e di P 1 sono ordinati localmente per effettuare il confronto P 0 < P 1 basta confrontare il più piccolo di P 0 con il più grande di P 1 Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 33
34 Strategia generale FASE 1 (SORTING LOCALE) Ciascun processore ordina il proprio vettore utilizzando un algoritmo di ordinamento FASE 2 (MERGING) Si confrontano gli elementi in coppie di Processori Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 34
35 PGBS: Ordinamento di un vettore FASE 1 (SORTING LOCALE) P 0 P Ogni processore ordina in modo crescente il proprio vettore Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 35
36 PGBS:Ordinamento di un vettore FASE 2 (MERGING) l operazione di COMPARE EXCHANGE viene applicata ai 2 processori Il processore P 0 contiene gli elementi più piccoli Processore basso Il processore P 1 contiene gli elementi più grandi Processore alto Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 36
37 I PASSO: step 1.0 P 0 P Step 1.0: P 0 invia a P 1 il proprio max = 81, mentre P 1 invia a P 0 il proprio min = 3 Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 37
38 I PASSO : step 1.1 P 0 P < 81? IN PARALLELO Step 1.1: P 0 confronta 3 con 81: se è minore lo inserisce; P 1 confronta 81 con 3:se è maggiore lo inserisce Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 38
39 I PASSO: step 1.2 P 0 P IN PARALLELO Step 1.2: Ciascun processore 1) Inserisce il numero ricevuto nel proprio vettore 2) Elimina il numero inviato dal proprio vettore 3) Riordina il vettore Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 39
40 II PASSO: step 2.0 P 0 P Step 2.0: P 0 invia a P 1 il proprio max = 25, mentre P 1 invia a P 0 il proprio min = 6 Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 40
41 II PASSO: step 2.1 P 0 P < 25? IN PARALLELO Step 2.1: P 0 confronta 6 con 25: se è minore lo inserisce; P 1 confronta 25 con 6: se è maggiore lo inserisce Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 41
42 II PASSO: step 2.2 P 0 P IN PARALLELO Step 2.2: Ciascun processore 1) Inserisce il numero ricevuto 2) Elimina il numero inviato 3) Riordina il vettore Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 42
43 III PASSO: step 3.0 P 0 P Step 3.0: P 0 invia a P 1 il proprio max = 9, mentre P 1 invia a P 0 il proprio min = 12 Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 43
44 III PASSO: step 3.1 P 0 P STOP 12 < 9? IN PARALLELO Step 3.1: P 0 confronta il numero 12 con 9: non è minore e termina l esecuzione. P 1 confronta il numero 9 con 12: non è maggiore e termina l esecuzione Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 44
45 PGBS:Ordinamento parallelo di un vettore P 0 P I 5 numeri più piccoli sono in P 0 mentre i 5 più grandi sono in P 1 Le due sottoliste iniziali sono globalmente ordinate secondo l ordine crescente dell identificativo dei processi Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 45
46 Finora abbiamo risolto il problema dell ordinamento nel caso p=2. Come fare nel caso p>2? Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 46
47 Esempio: p=4, n=20 Passo 1: distribuzione dati 2,19,34,4,29, 1,9,15,5,23, 6,11,38,18,8 3,22,20,7,17 P 0 P 1 P 2 P Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 47
48 Esempio: p=4, n=20 FASE 1 (SORTING LOCALE) P 0 P 1 P 2 P Ogni processore ordina in modo crescente la propria sottolista Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 48
49 Esempio: p=4, n=20 FASE 2 P 0 P 1 P 2 P Si applica l algoritmo GBS: 1) Si trasforma il vettore in uno bitonico; 2) Si ordina il vettore bitonico con il BBS Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 49
50 Esempio: p=4, n=20 Passo i=1 ( j=1 ) FASE 2 P 0 P 1 P 2 P Ordinamento Crescente Ordinamento Decrescente Co-Ex-Lo Co-Ex-Hi Co-Ex-Hi Co-Ex-Lo (proc basso) (proc alto) (proc alto) (proc basso) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 50
51 Esempio: p=4, n=20 FASE 2 P 0 P 1 P 2 P Fine passo i=1 e j=1 Il vettore è bitonico Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 51
52 Esempio: p=4, n=20 FASE 2 P 0 P 1 P 2 P Passo i=2 ordiniamo il vettore con il BBS Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 52
53 Esempio: p=4, n=20 FASE 2 Passo i=2 ( j=1 ) P 0 P 1 P 2 P Co-Ex-Lo Co-Ex-Lo Ordinamento Crescente Co-Ex-Hi Co-Ex-Hi Ordinamento Crescente Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 53
54 Esempio: p=4, n=20 FASE 2 (MERGING) La lista è ora globalmente ordinata P 0 P 1 P 2 P Co-Ex-Lo Co-Ex-Hi Co-Ex-Lo Co-Ex-Hi Ordinamento Crescente Ordinamento Crescente Passo i=2 ( j=2 ) Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 54
55 Esempio: p=4, n=20 La lista è ora globalmente ordinata P 0 P 1 P 2 P Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 55
56 Esempio: p=8, n=32 Passo 1: distribuzione dati,30,10,21, 6, 27,11,32, 3,12,26,7, 13,18,1,24, 14,4,25,19, 15,28,2,20, 5,16,22,29, 8,17,31,23 P 0 P 1 P 2 P 3 P 4 P 5 P 6 P Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 56
57 Esempio: p=8, n=32 FASE 1 (SORTING LOCALE) P 0 P 1 P 2 P 3 P 4 P 5 P 6 P Ogni processore ordina in modo crescente la propria sottolista Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 57
58 Esempio: p=8, n=32 FASE 2 (MERGING) P 0 P 1 P 2 P 3 P 4 P 5 P 6 P Applichiamo l algoritmo GBS Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 58
59 Esempio: p=8, n=32 FASE 2 (MERGING) Passo i=1 ( j=0 ) P 0 P 1 P 2 P 3 P 4 P 5 P 6 P C-E-Lo C-E-Hi C-E-Hi C-E-Lo C-E-Lo C-E-Hi C-E-Hi C-E-Lo Ordinamento Crescente Ordinamento Decrescente Ordinamento Crescente Ordinamento Decrescente Sequenza globalmente bitonica Sequenza globalmente bitonica Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 59
60 Esempio: p=8, n=32 FASE 2 (MERGING) P 0 P 1 P 2 P 3 P 4 P 5 P 6 P Passo i=2 ( j=1 ): ordiniamo il vettore con il BBS Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 60
61 si continua in esercitazione! Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 61
62 In sintesi Non si effettuano operazioni aritmetiche ma solo confronti e scambi Ogni scambio comporta una comunicazione tra coppie di processori L overhead di comunicazione incide in maniera significativa sulle prestazioni dell algoritmo parallelo Sorting Bitonico A. Murli Calcolo Parallelo e Distribuito 62
Calcolo Parallelo e Distribuito
Calcolo Parallelo e Distribuito 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo
ALGORITMI Docente: Prof. Domenico Cantone
CORSO SPECILE DI DURT NNULE PER IL CONSEGUIMENTO DELL BILITZIONE LL INSEGNMENTO NELL SCUOL SECONDRI DI I e II GRDO Indirizzo Fisico - Informatico - Matematico a.a. 00/07 - Classe - Informatica LGORITMI
Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
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 Indice Algoritmi di ordinamento: Insertion
Fondamenti di Informatica
Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze
Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort
Ordinamento Sommario Ordinamento Selection Sort Bubble Sort/ Shaker Sort Shell Sort Cosa e' l'ordinamento Il problema consiste nell elaborare insiemi di dati costituiti da record I record hanno sono costituiti
PROVETTE D ESAME. Algoritmi e Strutture Dati
PROVETTE D ESAME Algoritmi e Strutture Dati ESERCIZIO 1 Si ottengano limiti superiori e inferiori per la seguente ricorrenza ESERCIZIO 1 ESERCIZIO 2 Dato un albero binario T, il grado di sbilanciamento
Ordinamento di una lista: bubble-sort
Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate Ordinamento:
Esercizi per il corso di Algoritmi, anno accademico 2011/12
Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, nè in C++, etc. ). Di tutti gli
RICERCA IN UN VETTORE
RICERCA IN UN ETTORE La ricerca controlla se gli elementi di un vettore contengono un certo valore dato (detto anche chiave K) e comunica se l'elemento cercato esiste non esiste e nel caso che esista può
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
Algoritmi e Strutture Dati Geometria Computazionale. Daniele Loiacono
Algoritmi e Strutture Dati Geometria Computazionale Riferimenti 2 T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Introduction to Algorithms, Second Edition Queste trasparenze sono disponibili su http://dei.polimi.it/upload/loiacono
Algoritmi di ordinamento
Algoritmi di ordinamento! Selection Sort! Quick Sort! Lower bound alla complessità degli algoritmi di ordinamento Ordinamento 1 Selection Sort SelectionSort(dati[]) { for (i=0; idati.length-1; i++) { min
Corso di Tecniche di Programmazione
Problema: Data una sequenza di elementi in ordine qualsiasi, ordinarla. Corso di Tecniche di Programmazione Corsi di Laurea in Ingegneria Informatica ed Automatica Anno Accedemico 003/004 Proff. Giuseppe
Tecniche di Ordinamento dei Vettori
Tecniche di Ordinamento dei Vettori Corso di Laurea Ingegneria Corso B A.A. 2010-2011 1 Contenuto 1) Generalità 2) Metodi a Minimo Ingombro di Memoria 2.1) Ordinamento per selezione ( Selection Sort )
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:
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
2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
Laboratorio di Algoritmi e Strutture Dati. Code con Priorità
Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile [email protected] Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso
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
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
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
2. Analisi degli Algoritmi
2. Analisi degli Algoritmi Introduzione 2.1 Un modello di macchina elementare: la Macchina a Registri 2.2 Costo di esecuzione di un programma 2.3 Analisi del costo di esecuzione: il modello a costi uniformi
Albero di Riscorsione
Albero di Riscorsione Albero di ricorsione Un albero di ricorsione è un modo di visualizzare cosa accade in un algoritmo divide et impera L etichetta della radice rappresenta il costo non ricorsivo della
Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
Parte 1: tipi primitivi e istruzioni C
Parte 1: tipi primitivi e istruzioni C Esercizio 1 Scrivere un programma che stampa la somma di una sequenza di N numeri inseriti dall utente. Esercizio 2 Scrivere un programma che stampa la somma di una
Algoritmi di Ricerca Ordinamento
Algoritmi di Ricerca e Ordinamento Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Appunti Di Informatica Prof. Accarino 1 Algoritmi classici In ambito informatico alcuni problemi si presentano
Gli algoritmi ricorsivi di ordinamento. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino
ordinamento Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Merge Sort Ricorsivo, divide et impera Stabile Divisione: due sottovettori SX e DX rispetto al centro del vettore. p r A.A.
5. DIVIDE AND CONQUER I
Divide-et-Impera (Divide and conquer) 5. DIVIDE AND CONQUER I Mergesort e Relazioni di ricorrenza Esempi di progettazione D&I Moltiplicazione di interi Contare inversioni Divide-et-Impera. Definizione
