Algoritmi e strutture dati: lezione n° 1
Introduzione
Al Khwarizmi: Algoritmi (matematico persiano)
Knuth: Calcolo delle complessità degli algoritmi
Principio di "inclusione aritmetica"
a pessi: somma stia da 1 ad n
Logaritmi
Proprietà: b = base (essenzialmente x ed n numeri)
Proprietà del cambiamento di base del Logaritmo: Con a > 0 e a ≠ ±1, dato che a al denominatore, poss. dire in anke il suo reciproco è una costante
Andamento delle funzioni
Input: [Andamento delle funzioni]
n3 log2 (n)
n3: Nota! Il logaritmo moltiplicato per n3 sta sotto appunto ad n3 come per gli altri casi.
Big-O complexity chart
- O(log2 n): funzione logaritmica
- O(n): funzione identità
- O(n log2 n): funzione logaritmica con costante
- O(n2): funzione quadratica
- O(2n): funzione esponenziale
- O(n!): funzione fattoriale
Passo "induttivo": esempio
Sn = ∑K=1n K = n (n + 1)/2 ∀ n ≥ ⊕
Parto dalla definizione della cosa, che fare riferimento alla definizione della proprietà che voglio verificare; in questo caso fare riferimento alla definizione di sommatoria; Devo quindi verificare inserendo un "input", c:∑K=1nK = 1(n + 1)/21 = 1(2)/21 = 2/21 = 1
Ora devo fare il "passo induttivo" con una sorta di "atto di fede": ⊕i=1n i = n (n + 1)/2 devo dimostrare che ∑i=1n+1 i = (n + 1)((n + 1) + 1)/2 per "potere induttivo" deve essere uguale a (⊕i=1n i) + (n + 1) = n (n + 1)/2 + (n + 1)
Quindi: (n + 1) (n + 2) ———————?2n (n + 1) ————— + (n + 1)2 fatto comunen (n + 1) + 2 (n + 1) ———————————2(n + 1) (n + 2) ————————2
Dato che ottengo lo stesso risultato, il "gioco" è stato verificato e quindi abbiamo dimostrato che ∀n ≥ 1 n ΣK=1 k = n (n + 1)————————————————2 grazie al passo induttivo.
DeleteMax per code di priorità con heap
- Prendere l'elemento più a destra dell'ultimo livello e lo scambio con la radice (che se ne va).
- Scegliere la chiave minore tra quelle dei due figli. Nb. Gli elementi nell'ultimo livello vanno a sinistra dell'heap binario!
Risultato finale: La complessità di una cola heap è log2 n. Ho terminato i punti per ricordare che in pratica ne facciamo n-1. Posso mettere una annotazione provvisoria per il punto 2. H (log2 n) Popnu H (log2 n)
Esempio di carta di heap binario
funct Max : Chart rest thurs il puntatore alla radice
insertElem ("qualcosa", 230, pq)
Metodo alle tre
Questa è la cosa peggiore H(log2 n)# op -> tante quanto il n° ott e velli
Il caso migliore invece n ha nel caso, usano i modi che nel fra l’adiavi e del podore
insertElem ("qualcosa", 300, pq)
1o passo 3, 1 Si confronta il 400 con i due figli e si sceglie quello con chiave minore
Risultato finale:
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Algoritmi e strutture dati
-
Algoritmi e strutture dati
-
Algoritmi e strutture dati - Schema algoritmi
-
Algoritmi e Strutture Dati