Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo del Centro IPPARI, Programmazione
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Centro ricerche IPPARI, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Programmazione

Elementi di analisi degli algoritmi

Lezione 3 di Programmazione 2

Docente: Giuseppe Scollo

Università di Catania, sede di Comiso (RG)
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Studi in Informatica applicata, AA 2006-7

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 2

Indice

  1. Elementi di analisi degli algoritmi
  2. stima empirica delle prestazioni
  3. analisi degli algoritmi: motivazioni e obiettivi
  4. velocità di crescita delle funzioni
  5. valori di funzioni comuni
  6. proprietà della funzione logaritmo
  7. esercizi

stima empirica delle prestazioni

valutazione empirica delle prestazioni: stima o misura?

analisi degli algoritmi:
motivazioni e obiettivi

velocità di crescita delle funzioni

assunto: dipendenza delle prestazioni dell'algoritmo da un parametro primario N

(uno solo, per semplicità e senza perdita di generalità)

il tempo di esecuzione ("costo" più significativo degli algoritmi nella maggior parte dei casi) tipicamente cresce come una delle seguenti funzioni di N, e la rispettiva crescita si dice:

valori di funzioni comuni

l'andamento, per un campione di valori, di funzioni comunemente incontrate mostra che il loro confronto per piccoli valori di N può essere anche molto diverso da quello per grandi valori di N, determinato dalla velocità di crescita asintotica delle funzioni considerate:

lg N N1/2 N N lg N N(lg N)2 N3/2 N2
3 3 10 33 110 32 102
7 10 102 664 4414 1000 104
10 32 103 9966 ∼105 ∼3.2 ⋅ 104 106
13 100 104 ∼1.3 ⋅ 105 ∼1.7 ⋅ 106 106 108
17 316 105 ∼1.7 ⋅ 106 ∼2.8 ⋅ 107 ∼3.2 ⋅ 107 1010
20 1000 106 ∼2 ⋅ 107 ∼4 ⋅ 108 109 1012

N.B. la fattibilità pratica di un algoritmo è notevolmente sensibile all'ordine di grandezza del tempo di esecuzione: 105 secondi ∼ 1 giorno, 108 secondi ∼ 3 anni

proprietà della funzione logaritmo

definizione: funzione inversa dell'esponenziale

ovvero, logb x è l'esponente da dare a b per ottenere x :

dalla definizione discendono le proprietà:

notazione per basi speciali:

un'applicazione delle approssimazioni intere del logaritmo binario:

esercizi

  1. dimostrare che lg N + 1 = lg(N+1)   per ogni intero positivo N > 0
  2. il testo (Sedgewick, 2003, p. 41) propone due metodi simili, espressi da rispettive istruzioni C++, per il calcolo del più piccolo intero maggiore di lg N :
    • for (lgN = 0; N > 0; lgN++, N /= 2) ;
    • for (lgN = 0, t = 1; t < N; lgN++, t += t) ;
    dimostrare che i due metodi non sono equivalenti; più precisamente, trovare e correggere l'errore nel secondo metodo, posto che il valore della variabile intera lgN debba essere, all'uscita dal ciclo, il più piccolo intero maggiore di lg N