Indice completo¶
Algoritmi di base¶
- Rappresentazione dei numeri
- 1.1 Rappresentazione dei numeri naturali
- 1.2 Rappresentazione dei numeri interi
- 1.3 Rappresentazione dei numeri reali
- Pseudocodice
- 2.1 Introduzione allo pseudocodice
- 2.2 Variabili e assegnamenti
- 2.3 Operazioni di base
- 2.4 Costrutti di base
- 2.5 Array
- 2.6 Funzioni
- 2.7 Insiemi
- 2.8 Convenzioni di stile
- Algoritmi di ordinamento
- 3.1 Il problema dell'ordinamento
- 3.2 Insertion Sort
- 3.3 Exchange Sort
- 3.4 Selection Sort
- 3.5 Confronto dei tre algoritmi
- Ricerca lineare e binaria
- 4.1 Il problema della ricerca
- 4.2 Ricerca lineare
- 4.3 Ricerca binaria
- Algoritmi numerici
- 5.1 Cambio di base
- 5.2 Test di primalità
- 5.3 Crivello di Eratostene
- 5.4 Massimo comun divisore
Linguaggi di programmazione¶
- Introduzione a C++
- 6.1 Caratteristiche principali del linguaggio di programmazione
- 6.2 Variabili e tipi di dato
- 6.3 Flusso di ingresso e uscita
- 6.4 Operatori
- 6.5 Istruzioni condizionali
- 6.6 Cicli
- 6.7 Array
- 6.8 La funzione
maine le funzioni definite dall'utente - 6.9 Un algoritmo completo: il valore massimo in un array
- 6.10 Operatori bit a bit
- Introduzione a Python
- 7.1 Caratteristiche principali del linguaggio di programmazione
- 7.2 Variabili e tipi di dato
- 7.3 Ingresso e uscita
- 7.4 Operatori
- 7.5 Istruzioni condizionali
- 7.6 Cicli
- 7.7 Liste
- 7.8 Funzioni
- 7.9 Un algoritmo completo: il valore massimo in un array
- 7.10 Operatori bit a bit
- 7.11
PythoneC++a confronto
- Introduzione a Java
- 8.1 Caratteristiche principali del linguaggio di programmazione
- 8.2 Variabili e tipi di dato
- 8.3 Ingresso e uscita
- 8.4 Operatori
- 8.5 Istruzioni condizionali
- 8.6 Cicli
- 8.7 Array
- 8.8 Metodi (funzioni)
- 8.9 Un algoritmo completo: il valore massimo in un array
- 8.10 Operatori bit a bit
- 8.11
Java,C++ePythona confronto
Notazione e crescita asintotica¶
- Notazione asintotica
- 9.1 Notazioni \(\Theta\), \(\bigO\) e \(\Omega\)
- 9.2 Notazioni \(o\) e \(\omega\)
- 9.3 Limiti e notazioni asintotiche
- 9.4 Proprietà relazionali delle notazioni asintotiche
- 9.5 Notazione asintotica nell'analisi degli algoritmi
- Crescita asintotica
- 10.1 Famiglie di funzioni crescenti di variabile naturale
- 10.2 La gerarchia degli infiniti
- 10.3 Confronto fra ordini di crescita
Analisi degli algoritmi¶
- Dimensione dell'input
- 11.1 Dimensione dell'input
- 11.2 Notazione asintotica: un richiamo
- 11.3 Istanza di input costituita da un numero naturale
- 11.4 Istanza di input costituita da due numeri naturali
- 11.5 Istanza di input costituita da un array di numeri naturali
- 11.6 Dimensione dell'input e numero di passi
- Tempo di esecuzione
- 12.1 Tempo di esecuzione di un algoritmo
- 12.2 Ricerca del massimo
- 12.3 Insertion sort
- 12.4 Cambio di base
- 12.5 Test di primalità
- 12.6 Riepilogo
- Correttezza
- 13.1 Correttezza di un algoritmo
- 13.2 Correttezza di Find Maximum
- 13.3 Correttezza di Insertion Sort
- 13.4 Correttezza di Binary Search
- 13.5 Correttezza dell'algoritmo di Euclide
- 13.6 Correttezza degli algoritmi ricorsivi
Ricorsione¶
- Ricorsione
- 14.1 Algoritmi ricorsivi
- 14.2 Albero delle chiamate ricorsive e call stack
- 14.3 Correttezza degli algoritmi ricorsivi
- 14.4 Fattoriale
- 14.5 Numeri di Fibonacci
- 14.6 Massimo comun divisore
- 14.7 Elevamento a potenza veloce
- 14.8 Torri di Hanoi
- 14.9 Riepilogo
- Equazioni di ricorrenza
- 15.1 Equazioni di ricorrenza
- 15.2 Il metodo di espansione
- 15.3 Il metodo di sostituzione
- 15.4 Il metodo dell'albero di ricorsione
- 15.5 Verso il Master theorem
- 15.6 Riepilogo: quale metodo quando
- Il Master theorem
- 16.1 Ricorrenze in forma standard
- 16.2 Il Master theorem
- 16.3 Applicare il Master theorem
- 16.4 Quando il Master theorem non si applica
- 16.5 Dimostrazione del Master theorem
- 16.6 Riepilogo
- Algoritmi ricorsivi
- 17.1 La somma degli elementi di un array
- 17.2 Merge Sort
- 17.3 Ricerca binaria ricorsiva
- 17.4 Il problema del sotto-array di somma massima
- 17.5 Riepilogo
- Algoritmi ricorsivi e iterativi a confronto
- 18.1 Ricorsione e iterazione
- 18.2 Confronto in sintesi
- 18.3 Il divide et impera dà il guadagno, non la ricorsione in sé
- 18.4 Quando i sottoproblemi si sovrappongono
- 18.5 Spazio
- 18.7 Esperimento
- 18.8 Linee guida