Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
2
Lower bound Delimitazione inferiore alla quantità di una certa risorsa di calcolo necessaria per risolvere un problema W(n log n) è un lower bound al numero di confronti richiesti per ordinare n oggetti Consideriamo un generico algoritmo A, che ordina eseguendo solo confronti: dimostreremo che A esegue W(n log n) confronti Copyright © The McGraw - Hill Companies, srl
3
…alcuni richiami… Definizione (upper bound)
Un problema P ha una complessità O(f(n)) rispetto ad una risorsa di calcolo se esiste un algoritmo che risolve P il cui costo di esecuzione rispetto quella risorsa (nel caso peggiore) è O(f(n)) Definizione (lower boud) Un problema P ha una complessità (f(n)) rispetto ad una risorsa di calcolo se ogni algoritmo che risolve P ha costo di esecuzione (nel caso peggiore) (f(n)) rispetto quella risorsa Copyright © The McGraw - Hill Companies, srl
4
…per il problema dell’ordinamento…
Upper bound: O(n2) Insertio Sort, Selection Sort, Boubble Sort Lower bound: (n) banale: dimensione dell’input Abbiamo un gap lineare tra upper bound e lower bound! Possiamo fare meglio? Copyright © The McGraw - Hill Companies, srl
5
Ordinamento per confronti
Dati due elementi ai ed aj, per determinarne l’ordinamento relativo effettuiamo una delle seguenti operazioni di confronto: ai aj ; ai aj ; ai aj ; ai aj ; ai aj Non si possono esaminare i valori degli elementi o ottenere informazioni sul loro ordine in altro modo. Notare: Tutti gli algoritmi di ordinamento considerati fino ad ora sono algoritmi di ordinamento per confronto. Copyright © The McGraw - Hill Companies, srl
6
Confronta due elementi ai ed aj (ad esempio effettua il test ai aj);
Gli algoritmi di ordinamento per confronto possono essere descritti in modo astratto in termini di alberi di decisione. Un generico algoritmo di ordinamento per confronto lavora nel modo seguente: Confronta due elementi ai ed aj (ad esempio effettua il test ai aj); A seconda del risultato – riordina e/o decide il confronto successivo da eseguire. Albero di decisione - Descrive i confronti che l’algoritmo esegue quando opera su un input di una determinata dimensione. I movimenti dei dati e tutti gli altri aspetti dell’algoritmo vengono ignorati Copyright © The McGraw - Hill Companies, srl
7
Alberi di decisione Descrive le diverse sequenze di confronti che A potrebbe fare su istanze di lunghezza n Copyright © The McGraw - Hill Companies, srl
8
…alcune definizioni… radice Sotto-albero sinistro Sotto-albero destro Profondità di un nodo: lunghezza del cammino che lo congiunge alla radice. Altezza di un albero: valore massimo della profondità dei nodi. Copyright © The McGraw - Hill Companies, srl
9
Proprietà Per una particolare istanza, i confronti eseguiti da A su quella istanza rappresentano un cammino radice – foglia L’algoritmo segue un cammino diverso a seconda delle caratteristiche dell’input Caso peggiore: cammino più lungo Caso migliore: cammino più breve Il numero di confronti nel caso peggiore è pari all’altezza dell’albero di decisione Un albero di decisione per l’ordinamento di n elementi contiene almeno n! foglie Copyright © The McGraw - Hill Companies, srl
10
Altezza in funzione delle foglie
Un albero binario con k foglie tale che ogni nodo interno ha esattamente due figli ha altezza almeno log2 k Dimostrazione per induzione su k Copyright © The McGraw - Hill Companies, srl
11
Il lower bound W(n log n)
L’altezza h dell’albero di decisione è almeno log2 (n!) Formula di Stirling: n! (2pn)1/2 ·(n/e)n h log2(n!) > log2 (n/e)n = = n log2 (n/e) = n! > (n/e)n = n log2 n – n log2 e = = W(n log n) Copyright © The McGraw - Hill Companies, srl
12
Esercizio Fornire l’albero di decisione del seguente algoritmo per istanze di dimensione 3.
InsertionSort2 (A) for k=1 to n-1 do x = A[k+1] j = k while j > 0 e A[j] > x do A[j+1] = A[j] j= j-1 A[j+1]=x Copyright © The McGraw - Hill Companies, srl
13
Soluzione a1:a2 a2:a3 a1:a3 <a1,a2,a3> a1:a3
Copyright © The McGraw - Hill Companies, srl
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.