Ordinamenti per confronto: albero di decisione
|
|
|
- Silvestro Ceccarelli
- 9 anni fa
- Visualizzazioni
Transcript
1 Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto quando opera su un input di una data dimensione Assunzioni semplificative: tutti gli elementi di input sono distinti ( i confronti a i = a j sono inutili) tutti i confronti hanno la forma a i a j Cammino dalla radice a una foglia: una esecuzione dell algoritmo di ordinamento Nodo interno: esecuzione di un confronto a i a j (etichetta a i : a j ) per qualche i,j tale che 1 i,j n Foglia: permutazione degli indici dell input ( n foglie n permutazioni dell input, n!) che costituisce la soluzione per l esecuzione dell algoritmo che porta a tale foglia Altezza dell albero di decisione = n di confronti che l algoritmo di ordinamento esegue nel caso pessimo Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 1
2 Albero di decisione di INSERTION-SORT a 1 :a 2 > <1,2,3> a 2 :a 3 > a 1 :a 3 > a 1 :a 3 <2,1,3> a 2 :a 3 > > <1,3,2> <3,1,2> <2,3,1> <3,2,1> Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 2
3 Ordinamenti per confronto: limite inferiore per il caso pessimo Limite inferiore sull altezza degli alberi di decisione = limite inferiore sul tempo di esecuzione di qualunque algoritmo di ordinamento per confronto Teorema: qualunque albero di decisione che ordina n elementi ha altezza Ω(nlgn). Dimostrazione n! 2 h (cioè n permutazioni n foglie di un albero binario di altezza h) h lg(n!) (per l approssimazione di Stirling, lg(n!) = Θ(nlgn)) h Θ(nlgn) h = Ω(nlgn) Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 3
4 Ordinamenti per confronto: limite inferiore per il caso pessimo (cont.) Corollario: MERGE-SORT e HEAPSORT asintoticamente ottimi sono ordinamenti per confronto Dimostrazione Il limite superiore del tempo di esecuzione dei due algoritmi coincide con quello inferiore del caso pessimo descritto dal teorema Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 4
5 COUNTING-SORT Ipotesi: ognuno degli n elementi di input è un intero che cade nell intervallo da 1 a k, per qualche intero k L algoritmo determina, per ogni elemento x dell array di input, il n di elementi x e poi usa questa informazione per porre x nella posizione che gli compete nell array di output B (con qualche aggiustamento se esistono più elementi uguali) Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 5
6 COUNTING-SORT (cont.) COUNTING-SORT(A,B,k) 0 l array B ha le stesse dimensioni di A e mantiene l output ordinato 1 for i 1 to k 2 do C[i] 0 3 l array C[1.. k] fornisce la memoria di lavoro temporanea 4 for j 1 to length[a] 5 do C[A[j]] C[A[j]]+1 6 C[i] contiene ora il numero di elementi uguali a i 7 for i 2 to k 8 do C[i] C[i] + C[i 1] 9 C[i] contiene ora il numero di elementi i 10 for j length[a] downto 1 11 do B[C[A[j]]] A[j] 12 C[A[j]] C[A[j]] 1 O(k) O(n) O(k) O(n) Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 6
7 Esempio: COUNTING-SORT A C C B C Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 7
8 Esempio: COUNTING-SORT (cont.) B C B C Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 8
9 Esempio: COUNTING-SORT (cont.) B C B C Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 9
10 Esempio: COUNTING-SORT (cont.) B C B C Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 10
11 Analisi di COUNTING-SORT T(n) = O(k+n) Se k = O(n), come di solito accade, T(n) = O(n) L algoritmo è stabile, cioè elementi con lo stesso valore compaiono nell array di output nello stesso ordine in cui compaiono in quello di input (proprietà molto importante quando l ordinamento avviene in base a una chiave ma ciascun elemento è un intero record) Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 11
12 RADIX-SORT Scheda perforata: 12 righe * 80 colonne, dove ogni elemento della matrice può essere perforato Rappresentazione di un n in base 10: sono usate solo 10 righe e 1 colonna per ogni cifra per rappresentare un n di d cifre si usano d colonne La macchina ordinatrice di schede può esaminare una sola colonna per volta Per ordinare dei numeri, si ordina prima secondo la cifra meno significativa, e poi via via in modo stabile fino ad arrivare alla più significativa L algoritmo può essere usato anche per ordinare record in info con chiavi multiple Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 12
13 RADIX-SORT (cont.) RADIX-SORT(A,d) 1 for i 1 to d 2 do usa un ordinamento stabile per ordinare l array A sulla cifra i Esempio O(k+n) (se COUNTING-SORT) A: situazione iniziale i = 1 i = 2 i = d Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 13
14 Analisi di RADIX-SORT T(n) dipende da quale ordinamento stabile viene usato Se ogni cifra è nell intervallo da 1 a k, con k non troppo grande, viene scelto COUNTING-SORT (che però non ordina in loco ) T(n) = O(dn+dk) = O(n+k) = O(n) se d è costante se k = O(n) Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 14
15 BUCKET-SORT Ipotesi: l input è generato da un processo casuale che distribuisce gli n elementi in modo uniforme nell intervallo [0,1) L algoritmo divide l intervallo [0,1) in n sottointervalli di uguale dimensione, detti bucket (secchi), in cui distribuisce gli elementi, poi ordina gli elementi di ogni bucket BUCKET-SORT(A) 1 n length[a] 2 richiede un array ausiliario B[0.. n 1] di liste concatenate 3 for i 1 to n 4 do inserisci A[i] nella lista B[ na[i] ] 5 for i 0 to n 1 6 do ordina la lista B[i] con INSERTION-SORT 7 concatena le liste B[0], B[1],.., B[n 1] in quest ordine O(n) O(n) nel caso peggiore Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 15
16 Esempio: BUCKET-SORT Situazione al termine dell esecuzione dell algoritmo A B / / / / / / / / / / Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 16
17 Prova di correttezza di BUCKET-SORT CASO 1 Ipotesi: A[i] e A[j], i j, sono due elementi distinti che cadono nello stesso bucket B[k] Tesi (da dimostrare): A[i] e A[j] compaiono nella sequenza di output in ordine appropriato Dimostrazione: la tesi è dimostrata perché il contenuto di B[k] viene ordinato con INSERTION-SORT Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 17
18 Prova di correttezza di BUCKET-SORT (cont.) CASO 2 Ipotesi: A[i] e A[j], i j, sono due elementi distinti che cadono in due bucket distinti, rispettivamente B[i ] e B[j ], i < j ( nella sequenza di output A[i] precede A[j]) Tesi: A[i] A[j] Dimostrazione: assumiamo, per assurdo, la negazione della tesi, cioè A[i] > A[j]; se ciò è vero, segue che i = na[i] > na[j] = j che contraddice l ipotesi la tesi è dimostrata Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 18
19 BUCKET-SORT: caso medio n i = variabile casuale che rappresenta il n di elementi memorizzati nel bucket B[i] Valor medio Tempo di esecuzione della linea 6 : Tempo di esecuzione delle linee 5 + 6: [ ( )] ( [ ] 2 2 O n O E ) E = n 1 i= 0 i n i ( [ ]) [ ] 2 2 O E n O( n) O E n n 1 = i i = i= 0 E 2 2 [ n ] = Var[ n ] + E [ n ] i i i = 1 1 n = 2 1 n T(n) = O(n) La distribuzione di n i è binomiale Marina Zanella Algoritmi e strutture dati Ordinamento in tempo lineare 19
Algoritmi e Strutture Dati. Capitolo 4 Ordinamento
Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un
Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort
Due algoritmi di ordinamento basati sulla tecnica Divide et Impera: Mergesort e Quicksort (13 ottobre 2009, 2 novembre 2010) Ordinamento INPUT: un insieme di n oggetti a 1, a 2,, a n presi da un dominio
UNIVERSITA DEGLI STUDI DI PERUGIA
UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze
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
Esercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati 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 algoritmi
Dizionario. Marina Zanella Algoritmi e strutture dati Tabelle hash 1
Dizionario Insieme dinamico che offre solo le seguenti operazioni: inserimento di un elemento dato cancellazione di un elemento dato ricerca di un elemento dato (verifica dell appartenenza di un elemento
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
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
IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero
IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero Il teorema degli zeri è fondamentale per determinare se una funzione continua in un intervallo chiuso [ a ; b ] si annulla in almeno un punto interno
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Soluzione esercizi di approfondimento Stefano Leucci [email protected] Una terza variante dell IS InsertionSort3 (A) 1. for k=1 to n-1 do 2. x = A[k+1] 3. j = ricerca_binaria(a[1,k],x)
Approssimazione di dati e funzioni
Approssimazione di dati e funzioni Richiamiamo i principali metodi di approssimazione polinomiale di un insieme di dati (x i, y i ), i = 0,..., n. Le ordinate y i possono essere i valori assunti nei nodi
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 8 Code con priorità: Heap binomiali Riepilogo Array non ord. Array ordinato Lista non ordinata Lista ordinata Find Min Insert Delete DelMin Incr. Key Decr. Key merge
Alberi ed Alberi Binari
Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,
Algoritmi e Strutture Dati. HeapSort
Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
4.1 Modelli di calcolo analisi asintotica e ricorrenze
4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più
Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla
Camil Demetrescu Irene Finocchi Giuseppe F. Italiano Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Indice 1 Un introduzione informale agli algoritmi 1 2 Modelli di calcolo e metodologie di
Tempo e spazio di calcolo
Tempo e spazio di calcolo Modelli di calcolo e metodologie di analisi F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04) In quale modo stimiamo il tempo di calcolo? Possiamo considerare
Modulo 1 Concetti di base della Tecnologia dell Informazione
Modulo 1 Concetti di base della Tecnologia dell Informazione 1.0.1.1 1.0.1.2 1.0.1.3 Algoritmi Definizione di algoritmo e sua rappresentazione grafica Per algoritmo si intende un procedimento, che permette
Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa
Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa [email protected] M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni
Esercitazione: La distribuzione NORMALE
Esercitazione: La distribuzione NORMALE Uno dei più importanti esempi di distribuzione di probabilità continua è dato dalla distribuzione Normale (curva normale o distribuzione Gaussiana); è una delle
Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
Geometria della programmazione lineare
Geometria della programmazione lineare poliedri punti estremi, vertici, soluzioni di base esistenza di punti estremi rif. Fi 3.1; BT 2.1, 2.2, 2.5 Iperpiani, semispazi Definizione Sia a un vettore non
Informatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
Piccolo teorema di Fermat
Piccolo teorema di Fermat Proposizione Siano x, y Z, p N, p primo. Allora (x + y) p x p + y p (mod p). Piccolo teorema di Fermat Proposizione Siano x, y Z, p N, p primo. Allora (x + y) p x p + y p (mod
Alberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Algoritmi e Strutture Dati Esercizi Svolti. Giuseppe Persiano Dipartimento di Informatica ed Appl. Renato M. Capocelli Università di Salerno
Algoritmi e Strutture Dati Esercizi Svolti Giuseppe Persiano Dipartimento di Informatica ed Appl Renato M Capocelli Università di Salerno Indice Esercizio 12-3 5 Esercizio 23-4 6 Esercizio 63-3 7 Esercizio
Tempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
04 - Logica delle dimostrazioni
Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 04 - Logica delle dimostrazioni Anno Accademico 013/014 D. Provenzano,
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
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
Descrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
Algoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il
Alberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella [email protected] www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
RAPPRESENTAZIONE DELLE INFORMAZIONI
RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,
8. Completamento di uno spazio di misura.
8. Completamento di uno spazio di misura. 8.1. Spazi di misura. Spazi di misura completi. Definizione 8.1.1. (Spazio misurabile). Si chiama spazio misurabile ogni coppia ordinata (Ω, A), dove Ω è un insieme
Un ripasso di aritmetica: Conversione dalla base 10 alla base 2
Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre
Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015
1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)
Heap e code di priorità
Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010
Note per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
Algoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
= < < < < < Matematica 1
NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato
L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013
L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)
In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.
Definizione Oggetto del calcolo combinatorio è quello di determinare il numero dei modi mediante i quali possono essere associati, secondo prefissate regole, gli elementi di uno stesso insieme o di più
ADT Coda con priorità
Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni
Alberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
Programmazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo. Paolo Baiti 1 Lorenzo Freddi 1
Corso integrato di Matematica per le scienze naturali ed applicate Materiale integrativo Paolo Baiti 1 Lorenzo Freddi 1 1 Dipartimento di Matematica e Informatica, Università di Udine, via delle Scienze
Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE
Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente
Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo
Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale
Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer
Operatori di relazione
Condizioni Negli algoritmi compaiono passi decisionali che contengono una proposizione (o predicato) dal cui valore di verità dipende la sequenza dinamica Chiamiamo condizioni tali proposizioni Nei casi
Codifica dell Informazione
Introduzione all Informatica Fabrizio Angiulli Codifica dell Informazione CODIFICA DI DATI E ISTRUZIONI Algoritmi Istruzioni che operano su dati Per scrivere un programma è necessario rappresentare dati
Gara Matematica. Dipartimento di Matematica Ulisse Dini. Viale Morgagni 67/a Firenze. Soluzioni edizione 2011
Gara Matematica Dipartimento di Matematica Ulisse Dini Viale Morgagni 67/a - 50134 Firenze Soluzioni edizione 011 Esercizio 1. Determinare tutti gli interi positivi non nulli n che sono uguali alla somma
Algoritmi e Strutture Dati
Analisi Asintotica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Un graduale processo di astrazione Passo 1: abbiamo ignorato il costo effettivo
Codifica binaria. Rappresentazioni medianti basi diverse
Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla
Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1
Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1 Esercizio 1.12 Per dimostrare che per ogni funzione esiste una formula in cui compaiono le variabili tale che la corrispondente
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
Caratteristiche di un linguaggio ad alto livello
Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono
I.4 Rappresentazione dell informazione
I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione
Massimo Benerecetti Tabelle Hash: gestione delle collisioni
Massimo Benerecetti Tabelle Hash: gestione delle collisioni # Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Algoritmi e Strutture Dati I Email Docente: [email protected] A.A. 2009-2010
Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
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
Complessità Computazionale
Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION
Codifica dell Informazione
Francesco Folino CODIFICA DI DATI E ISTRUZIONI Algoritmi Istruzioni che operano su dati Per scrivere un programma è necessario rappresentare dati e istruzioni in un formato tale che l esecutore automatico
Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi
Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare
Algoritmi e Strutture dati a.a. 2012/2013
a.a. 2012/2013 Dr Informazioni docente E-mail docente: [email protected] Ricevimento: Su appuntamento (inviare e-mail) 2 Informazioni lezioni Lunedì, Martedì, Mercoledì 10:30-13:30 aula INFO2 15
Rappresentazione dell Informazione
5 Giorgio Porcu - Aggiornamennto 5 Giorgio Porcu - Aggiornamennto ISTITUTO TECNICO SECONDO BIENNIO Rappresentazione dell Informazione GIORGIO PORCU www.thegiorgio.it Sommario Sistemi posizionali Sistema
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme
Introduzione alla tecnica di Programmazione Dinamica
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/37 Sommario della lezione Introduzione alla tecnica di Programmazione Dinamica Esempio di applicazione n. 1:
Strutture di accesso ai dati: B + -tree
Strutture di accesso ai dati: B + -tree A L B E R T O B E L U S S I S E C O N D A P A R T E A N N O A C C A D E M I C O 2 0 0 9-2 0 0 Osservazione Quando l indice aumenta di dimensioni, non può risiedere
Distribuzione di frequenza e rappresentazioni grafiche
Distribuzione di frequenza e rappresentazioni grafiche Argomenti della lezione La distribuzione di frequenza in classi La rappresentazione grafica Le tabelle di frequenza Le distribuzioni di frequenza
Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso
Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso
LEZIONE 4. { x + y + z = 1 x y + 2z = 3
LEZIONE 4 4.. Operazioni elementari di riga. Abbiamo visto, nella precedente lezione, quanto sia semplice risolvere sistemi di equazioni lineari aventi matrice incompleta fortemente ridotta per righe.
Quali condizionisi si possono richiedere sulla funzione interpolante?
INTERPOLAZIONE Problema generale di INTERPOLAZIONE Dati n punti distinti ( i, i ) i=,..,n si vuole costruire una funzione f() tale che nei nodi ( i ) i=,..n soddisfi a certe condizioni, dette Condizioni
Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754
Addizionatori: metodo Carry-Lookahead Costruzione di circuiti combinatori Standard IEEE754 Addizionatori Il circuito combinatorio che implementa l addizionatore a n bit si basa su 1-bit adder collegati
Il codice di Sarngadeva
Matematica - Musica Il codice di Sarngadeva È oggi riconosciuto da molti (vedi, ad esempio, Knuth [3]) come diverse nozioni combinatorie di base (quali il sistema binario, il triangolo di Tartaglia-Pascal,
Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)
Rappresentazione di Numeri Reali Un numero reale è una grandezza continua Può assumere infiniti valori In una rappresentazione di lunghezza limitata, deve di solito essere approssimato. Esistono due forme
