Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente)"

Transcript

1

2 Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente) i j Confronto a due a due tutte le coppie del vettore e,se non sono ordinate tra loro, le scambio.

3 Ordinare un vettore significa ridisporre i suoi elementi in modo tale che siano ordinati tra di loro (l ordinamento più comune è per valore crescente) function Vordinato = ordinamento (V) len=length(v); for i=1:len-1 for j=i+1:len if V(i)>V(j) temp=v(i); V(i)=V(j); V(j)=temp; end end end Vordinato=V; end X=uint32(rand(1,50)*100); Ordinamento(X);

4 SELECTION SORT INSERTION SORT Algoritmi incrementali Estende progressivamente una sottosequenza ordinata finchè tutto il vettore diventa ordinato BUBBLE SORT Si basa su più scansioni del vettore Scambia elementi vicini finchè tutto il vettore è ordinato

5 SELECTION SORT Supponiamo che i primi k elementi del vettore siano ordinato, Es k=3 Come possiamo estendere l ordinamento all elemento k+1? Selection sort: prendi il minimo tra gli n-k elementi rimanenti e spostalo nella posizione k+1 (con uno scambio)

6 SELECTION SORT n = lunghezza del vettore, k all inizio vale 1 1.Prendi l elemento in posizione k dove k-1 è il numero di elementi già ordinati 2.Trova il minimo tra gli n-k+1 elementi non ordinati 3.Scambia l elemento in posizione k col minimo trovato 4. Aumenta k di 1 5.Se k < n torna al passo 1 Fine

7 Come funziona l algoritmo SELECTION SORT: k=1 k=2 k=3 k=4 k=5 k=6

8 If m~=i 1

9 Esercizio: Modificare il codice in modo da visualizzare il numero di confronti e il numero di scambi effettuati

10 INSERTION SORT Supponiamo che i primi k elementi del vettore siano ordinati, Es k=4 Come possiamo estendere l ordinamento all elemento k+1? Selection sort: prendi l elemento in posizione k+1 ed inseriscilo nella posizione corretta rispetto ai primi k elementi

11 INSERTION SORT n = lunghezza del vettore, k all inizio vale 2 1.Prendi l elemento in posizione k nel vettore 2.Trova la posizione per l elemento k nella sottosequenza ordinata 3.Se la posizione per l elemento k è minore di k, allora bisogna scalare alcuni elementi già ordinati 4. Aumenta k di 1 4.Se k < n torna al passo 1 Fine

12 Come funziona l algoritmo INSERTION SORT: k= k=3 k=4 k=5 k=6 k=7

13

14 Esercizio: Modificare il codice in modo da visualizzare il numero di confronti e il numero di scambi effettuati

15 BUBBLE SORT Si basa su più scansioni (scorrimenti) del vettore Durante ciascuno scorrimento, coppie di valori adiacenti non ordinate vengono scambiate Se durante una scansione non avviene nessuno scambio, il vettore è ordinato

16

17

18 Esercizio: Modificare il codice in modo da visualizzare il numero di confronti e il numero di scambi effettuati

19 ORDINAMENTO - Modificare i tre algoritmi per l ordinamento in modo da ordinare un vettore di 10 elementi in base al valore crescente dell unità(cioè dell ultima cifra a destra).

20 Esercizio: Atleta Realizza un programma in MatLab che consente di creare un report degli allenamenti di un atleta del salto in lungo. L atleta si allena tutti i giorni provando a saltare ad una distanza di 6 metri, segnando le misure dei salti e ripetendo il salto finché questo riesce. Il report deve contenere Per ogni giorno della settimana: il giorno, il numero di salti e la distanza massima saltata. Lunedi 9 Martedi 12 Domenic a

21 Esercizio: Atleta giorni={'lunedi','martedi','mercoledi','giovedi','venerdi','sabato','domenica'}; numerogiorni=length(giorni); allenamento={}; for i=1:numerogiorni misurasalto=0; numerosalti=0; disp(giorni{i}); while misurasalto<6 misurasalto=input('inserisci la misura del salto: '); numerosalti=numerosalti+1; end allenamento{i}={giorni{i} numerosalti misurasalto}; end allenamento

22 giorni={'lunedi','martedi','mercoledi','giovedi','venerdi','sabato','domenica'}; numerogiorni=length(giorni); allenamento={}; for i=1:numerogiorni vettoremisure=[]; misurasalto=0; numerosalti=0; disp(giorni{i}); while misurasalto<6 misurasalto=input('inserisci la misura del salto: '); vettoremisure=[vettoremisure misurasalto]; end allenamento{i}={giorni{i} length(vettoremisure) vettoremisure}; end allenamento migliori={}; for i=1:numerogiorni migliorsalto=max(allenamento{i}{3}); allenamento{i}{3}=migliorsalto; end allenamento

23 Esercizi: CON FUNZIONI PREDEFINITE E INDICIZZAZIONE MATLAB - Generare un vettore di numeri casuali compresi tra 0 e 99; Contare quanti elementi sono maggiori del primo; Trovare la posizione del primo valore superiore al primo; Trovare la posizione dell ultimo valore superiore al primo - Generare un vettore di numeri casuali compresi tra -50 e 49; Contare quanti elementi sono maggiori della somma di tutti gli elementi; sostituire con 0 tali valori. CALCOLO DEL MINIMO - Dato un vettore di 10 elementi, sostituire l elemento con valore minimo con il valore della posizione che occupa. CALCOLO DEL MINIMO,MASSIMO E SCAMBIO - Dato un vettore di 10 elementi (riempito con valori random) scrivi un procedimento per scambiare di posto il valore minimo col valore massimo.

24 Generare un vettore di numeri casuali compresi tra 0 e 99; Contare quanti elementi sono maggiori del primo; Trovare la posizione del primo valore superiore al primo; Trovare la posizione dell ultimo valore superiore al primo Generare un vettore di numeri casuali compresi tra -50 e 49; Contare quanti elementi sono maggiori della somma di tutti gli elementi; sostituire con 0 tali valori. SOLUZIONI ESERCIZI CON FUNZIONI PREDEFINITE E INDICIZZAZIONE V=floor(100*rand(1,10)) sum(v>v(1)) min(find(v>v(1))) max(find(v>v(1))) V=floor( *rand(1,10)) sum(v>sum(v)) V(find(V>sum(V)))=0

25 Dato un vettore di 10 elementi, sostituire l elemento con valore minimo con il valore della posizione che occupa. SOLUZIONE ESERCIZI SUL CALCOLO DEL MINIMO V = floor(50*rand(1,10)); disp(v); pos=1; for i=1:length(v) if V(i)<V(pos) pos=i; end end V(pos)=pos; disp(v);

26 Esercizio: Generare una matrice 5x5 contenente zeri. Generare un vettore di 5 elementi random compresi tra 0 e 49 Riempire le righe della matrice con il contenuto del vettore: in ciascuna riga il contenuto del vettore sarà «ruotato» di 0,1,2,3 e 4 posizioni verso sinistra

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18 Tutor: prof. Francesco De Vincenzi function q = quadratoricorsivo (n, m) if m==0 q=0; else q=n+quadratoricorsivo(n,m-1); Funzione ricorsiva

Dettagli

Esercizi d esame. Elena Tundo

Esercizi d esame. Elena Tundo Esercizi d esame Elena Tundo Esercizi su Linux Tenendo presente di partire dalla home directory, la sequenza di comandi Linux per creare una sottocartella dir2 ed una dir3 e spostare dentro dir2 il file

Dettagli

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Prof. Venturino Taggi accattatis@ing.uniroma2.it taggi@ing.uniroma2.it 2 Fondamenti di Informatica 2015/16 V.Taggi taggi@ing.uniroma2.it Algoritmi di

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Esercizio: Linear Congruential Generator

Esercizio: Linear Congruential Generator Elementi di Informatica e Applicazioni Numeriche T Esercizio: Linear Congruential Generator Esercizio: Linear Congruential Generator Si consideri la successione (linear congruential generator): X n+1 =

Dettagli

Lezione 31: Algoritmi di Ordinamento Giovedì 2 Dicembre 2010

Lezione 31: Algoritmi di Ordinamento Giovedì 2 Dicembre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 31: Algoritmi di Ordinamento Giovedì 2 Dicembre 2010 Ordinare

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Ordinamento Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Ordinamento di una lista: bubble-sort

Ordinamento di una lista: bubble-sort Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate Ordinamento:

Dettagli

Ricerca in una sequenza ordinata

Ricerca in una sequenza ordinata Ricerca su array ordinata Ricerca in una sequenza ordinata Se la sequenza è ordinata posso sfruttare l ordinamento per rendere più efficiente la ricerca, terminando se l elemento corrente risulta maggiore

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 14: ALGORITMI di ordinamento di array RICERCA sequenziale e binaria Array bidimensionali (matrici) Passaggio di argomenti al main Operazioni su array Un array

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

Ordinamento efficiente: quick-sort

Ordinamento efficiente: quick-sort Ordinamento efficiente: quick-sort Si cerca di ridurre la parte disordinata di più di un elemento per volta (a differenza di selection-sort e bubble-sort) L idea è di ordinare parzialmente l array, in

Dettagli

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI Informatica I dati strutturati: gli array I vettori (o Array) Fino a ora abbiamo memorizzato le informazioni (valori)

Dettagli

Silvia Rossi. Algoritmi di Ordinamento. Informatica. Lezione n. Parole chiave: Bubble Sort Selection Sort. Corso di Laurea:

Silvia Rossi. Algoritmi di Ordinamento. Informatica. Lezione n. Parole chiave: Bubble Sort Selection Sort. Corso di Laurea: Silvia Rossi Algoritmi di Ordinamento 0 Lezione n. Parole chiave: Bubble Sort Selection Sort Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 00-0 Ordinamento

Dettagli

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18 Tutor: prof. Francesco De Vincenzi MATLAB: esercizi sui vettori Alcuni esercizi sui vettori della scorsa lezione, risolti con i costrutti

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati 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

Dettagli

Linguaggio C. Algoritmi di ordinamento e ricerca. Università degli Studi di Brescia. Prof. Massimiliano Giacomin

Linguaggio C. Algoritmi di ordinamento e ricerca. Università degli Studi di Brescia. Prof. Massimiliano Giacomin Linguaggio C Algoritmi di ordinamento e ricerca Università degli Studi di Brescia Prof. Massimiliano Giacomin ORDINAMENTO DI VETTORI Dato un vettore, es. int v[10] 9 5 2 3 2 10 2 10 4 1 permutare i suoi

Dettagli

Le classi FileInputStream e RandomAccessFile. Semplici Algoritmi di Ordinamento

Le classi FileInputStream e RandomAccessFile. Semplici Algoritmi di Ordinamento Fondamenti di Informatica Le classi FileInputStream e RandomAccessFile Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Classe FileInputStream La classe FileInputStream

Dettagli

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18 Tutor: prof. Francesco De Vincenzi MATLAB: esercizio Dati un vettore e una matrice di dimensioni qualsiasi, trovare le coordinate (riga

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze

Dettagli

Calcolo Parallelo e Distribuito

Calcolo Parallelo e Distribuito Calcolo Parallelo e Distribuito 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Algoritmi di ordinamento Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

clear clc v=input(['digitare V']); for i=1:length(v); for j=1:length(v); if i==j; m(i,j)=v(i); else; m(i,j)=0; end; end; end; disp(m)

clear clc v=input(['digitare V']); for i=1:length(v); for j=1:length(v); if i==j; m(i,j)=v(i); else; m(i,j)=0; end; end; end; disp(m) Avvertenze A grande richiesta pubblico la prima parte di soluzioni al secondo dei tre esercizi in Matlab che norma vengono somministrati nella prova d esame (codifica di un algoritmo). Circa il primo esercizio

Dettagli

Ordinamento di una lista: bubble-sort

Ordinamento di una lista: bubble-sort Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate Ordinamento:

Dettagli

Calcolo Parallelo e Distribuito

Calcolo Parallelo e Distribuito Calcolo Parallelo e Distribuito 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo

Dettagli

8 Introduzione MATLAB

8 Introduzione MATLAB 8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse

Dettagli

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY) VARIABILI STRUTTURATE (ARRAY) 1 successione (di numeri reali): i ℵ a R i vettore (di numeri reali): i I a i R con I ℵ sottoinsieme finito ogni componente del vettore e univocamente determinata dall indice

Dettagli

Scrivi una funzione ricorsiva che prende in input un vettore V e restituisce un vettore V2 della dimensione doppia di V, che

Scrivi una funzione ricorsiva che prende in input un vettore V e restituisce un vettore V2 della dimensione doppia di V, che Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri più alti presenti nel vettore. Script su matrici

Dettagli

Calcolo Parallelo e Distribuito. a.a

Calcolo Parallelo e Distribuito. a.a Calcolo Parallelo e Distribuito a.a. 2005-2006 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico

Dettagli

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort

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

Dettagli

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis ( ) Tutor : prof. Marcello Colella (

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis ( ) Tutor : prof. Marcello Colella ( FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis ( accattatis@ing.uniroma2.it ) Tutor : prof. Marcello Colella ( mcolella.uniroma2@outlook.it ) STRINGHE Fondamenti di Informatica - A.Accattatis 2 Fondamenti

Dettagli

Tecniche di Ordinamento dei Vettori

Tecniche di Ordinamento dei Vettori Tecniche di Ordinamento dei Vettori Corso di Laurea Ingegneria Corso B A.A. 2010-2011 1 Contenuto 1) Generalità 2) Metodi a Minimo Ingombro di Memoria 2.1) Ordinamento per selezione ( Selection Sort )

Dettagli

Esercizi sulla ricorsione

Esercizi sulla ricorsione Laboratorio di Sperimentazioni di Fisica I MOD A 21 Ottobre 2009 Esercizi sulla ricorsione enea.poletti@dei.unipd.it elisa.veronese@dei.unipd.it enrico.grisan@deiunipd.it Esempi classici: calcolare il

Dettagli

Permutazioni. 1 Introduzione

Permutazioni. 1 Introduzione Permutazioni 1 Introduzione Una permutazione su un insieme di n elementi (di solito {1, 2,...,n}) è una funzione biiettiva dall insieme in sé. In parole povere, è una regola che a ogni elemento dell insieme,

Dettagli

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate

Dettagli

Algoritmi di Ricerca Ordinamento

Algoritmi di Ricerca Ordinamento Algoritmi di Ricerca e Ordinamento Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Appunti Di Informatica Prof. Accarino 1 Algoritmi classici In ambito informatico alcuni problemi si presentano

Dettagli

Esercitazione del 03/03/ Soluzioni

Esercitazione del 03/03/ Soluzioni Esercitazione del 03/03/2005 - Soluzioni. Conversione binario decimale ( Rappresentazione dell Informazione Conversione da base n a base 0, slide 0) a. 0 2? 0 2 Base 2 Si cominciano a contare le posizioni

Dettagli

Algoritmi stabili e instabili

Algoritmi stabili e instabili Algoritmi stabili e instabili Laboratorio di Calcolo Numerico 13 Marzo 2018 Vettori in MATLAB Finora abbiamo pensato alle variabili utilizzate come semplici valori numerici (variabili scalari). In realtà,

Dettagli

12 Function Handles e Ricorsione in MATLAB

12 Function Handles e Ricorsione in MATLAB 1 Function Handles e Ricorsione in MATLAB Un function handle è una variabile il cui valore è una funzione. Data una funzione esistente, il suo function handle è dichiarato come handle = @nome dove nome

Dettagli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi

Dettagli

8 Introduzione MATLAB

8 Introduzione MATLAB 8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Capitolo 7 Algoritmi di ordinamento 7.1 Selection sort L algoritmo di ordinamento per selezione opera nel modo seguente: supponiamo che i primi k elementi siano ordinati; l algoritmo sceglie il minimo

Dettagli

Ordinamento di una lista: bubble-sort

Ordinamento di una lista: bubble-sort Python Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate

Dettagli

Esercitazioni del Corso di Fondamenti di Informatica ARRAY. Prof. Giuseppe Manco. A cura di Ing. Andrea Tagarelli

Esercitazioni del Corso di Fondamenti di Informatica ARRAY. Prof. Giuseppe Manco. A cura di Ing. Andrea Tagarelli Esercitazioni del Corso di Fondamenti di Informatica ARRAY Prof. Giuseppe Manco A cura di Ing. Andrea Tagarelli ESERCIZIO 1 public static int[] elaboravettore (int[] v) che verifica che gli elementi di

Dettagli

nel trasformare una sequenza di elementi

nel trasformare una sequenza di elementi Ordinamento Carla Binucci e Walter Didimo Il problema dell ordinamento In generale, il Problema dell ordinamento consiste nel trasformare una sequenza di elementi rendendola ordinata rispetto a un certo

Dettagli

Algoritmi di ordinamento di un array ORDINAMENTO ARRAY. Corso di Programmazione Cefi Informatica

Algoritmi di ordinamento di un array ORDINAMENTO ARRAY. Corso di Programmazione Cefi Informatica Algoritmi di ordinamento di un array ORDINAMENTO ARRAY Introduzione agli ordinamenti di un array Ordinare un array significa disporre i suoi elementi in ordine crescente o decrescente. Ad esempio, Vari

Dettagli

MODULO 4: LA STRUTTURA ARRAY a 1-DIMENSIONE

MODULO 4: LA STRUTTURA ARRAY a 1-DIMENSIONE MODULO 4: LA STRUTTURA ARRAY a 1-DMENSONE Definizione di Array-1 dimensione Un array é un insieme di variabili, che occupano celle consecutive in memoria. Un array ha le seguenti caratteristiche: un nome,

Dettagli

Progettazione di Algoritmi: Approccio Top-Down e Bottom Up

Progettazione di Algoritmi: Approccio Top-Down e Bottom Up Progettazione di Algoritmi: Approccio Top-Down e Bottom Up Ci sono due approcci fondamentali per progettare algoritmi Servono ambedue ad aiutarci ad affrontare il problema Si chiamano "top-down" e "bottom-up"

Dettagli

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA FONDAMENTI DI INFORMATICA ESERCITAZIONI Prof. Alfredo Accattatis ( accattatis@ing.uniroma2.it ) Tutor: prof. Marcello Colella ( mcolella.uniroma2@outlook.it ) Fondamenti di Informatica - A.Accattatis -

Dettagli

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I Silvia Rossi Cenni sulla complessità 23 Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010 Abbiamo visto che dato un problema

Dettagli

Esercizi C su array e matrici

Esercizi C su array e matrici Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]

Dettagli

ripeto il procedimento a partire da a j cerco il minimo tra j +1 ed N scambio il valore trovato con a j ripeto finché j non è N 1

ripeto il procedimento a partire da a j cerco il minimo tra j +1 ed N scambio il valore trovato con a j ripeto finché j non è N 1 Insert sort Considero il primo elemento a 1 cerco il minimo tra gli elementi 2...N scambio il minimo trovato con il primo e- lemento considero ora a 2 cerco il minimo tra gli elementi 3...N scambio il

Dettagli

Insert sort. Considero il primo elemento a 1. cerco il minimo tra gli elementi 3...N. scambio il minimo trovato con il primo e- lemento

Insert sort. Considero il primo elemento a 1. cerco il minimo tra gli elementi 3...N. scambio il minimo trovato con il primo e- lemento Insert sort Considero il primo elemento a 1 cerco il minimo tra gli elementi 2...N scambio il minimo trovato con il primo e- lemento considero ora a 2 cerco il minimo tra gli elementi 3...N scambio il

Dettagli

Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...

Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,... Vettori (array) Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...) I vettori sono caratterizzati da dimensione tipo Es.

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non

Dettagli

Problem Set 3 docente: Luciano Gualà

Problem Set 3 docente: Luciano Gualà Problem Set 3 docente: Luciano Gualà Esercizio (una domanda semplice ma non troppo) Dire se può esistere un algoritmo di ordinamento basato su confronti che ordina un insieme di 8 elementi facendo nel

Dettagli

Permutazioni e Gioco del 15. Dott.ssa Giovanna Rosone

Permutazioni e Gioco del 15. Dott.ssa Giovanna Rosone Permutazioni e Gioco del 15 Dott.ssa Giovanna Rosone Permutazione Una permutazione è un modo di combinare n oggetti distinti scambiandoli di posizione Ci sono essenzialmente due notazioni per scrivere

Dettagli

Informatica! Appunti della lezione 8!

Informatica! Appunti della lezione 8! Informatica! Appunti della lezione 8! Palindromia! Una stringa si dice palindroma quando si legge allo stesso modo da destra e da sinistra (es.: itopinonavevanonipoti )! Il problema del riconoscimento

Dettagli

Algoritmi di ordinamento (I parte)

Algoritmi di ordinamento (I parte) (I parte) Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Definizione formale del problema Input:! Una sequenza di n numeri Output:! Una permutazione

Dettagli

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Algoritmi

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Algoritmi Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Algoritmi Rev..0 of 0-0- Elaborazione dati Problemi che si presentano spesso sono. ricerca del minimo

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 24 Correzione Simulazione Docente: Michele Ferrari - michele.ferrari@unife.it In questa lezione Correzione

Dettagli

Cicli annidati ed Array multidimensionali

Cicli annidati ed Array multidimensionali Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un

Dettagli

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017 Cominciamo con un esempio... Franco FRATTOLILLO Dipartimento di Ingegneria Università degli Studi del Sannio Corso di "Programmazione I" Corso di Laurea in Ingegneria Informatica / ExAT 1 Franco FRATTOLILLO

Dettagli

Linguaggio C. Problemi di Ricerca e Ordinamento: Algoritmi e Complessità.

Linguaggio C. Problemi di Ricerca e Ordinamento: Algoritmi e Complessità. Linguaggio C Problemi di Ricerca e Ordinamento: Algoritmi e Complessità. 1 Complessità degli Algoritmi Si definisce Complessità di un Algoritmo C(A) la funzione dei parametri rilevanti per A che determina

Dettagli

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.2 Contenuti 1.Esercizi generici sul diagramma di flusso - flow chart...2 2 Esercizi di scansione e visualizzazione

Dettagli

Esercizi

Esercizi Esercizi Si implementi una funzione che riceve in input una matrice NxM di float. Definito picco un numero circondato in tutte le posizioni intorno solo da numeri strettamente inferiori alla sua metà,

Dettagli

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 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

Dettagli

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione Informatica Generale Andrea Corradini 14 - Algoritmi: ordinamento per inserimento e ricorsione Sommario Un algoritmo iterativo: l'ordinamento per inserimento (insertion sort) La ricorsione: i numeri triangolari

Dettagli

7 Algoritmi di ricerca e di ordinamento

7 Algoritmi di ricerca e di ordinamento 7 Algoritmi di ricerca e di ordinamento { Strategie di ordinamento di un Array 1. * Scam bio o I ngenuo; Bubble-Sort (Sono sicuram ente le tecniche più sem plice da im plem entare m a risultano le più

Dettagli

Progetto Corda. Alberto Ferrari. Alberto Ferrari Ingegneria dell'informazione, UniPR. 18/12/2017 Progetto Corda

Progetto Corda. Alberto Ferrari. Alberto Ferrari Ingegneria dell'informazione, UniPR. 18/12/2017 Progetto Corda Progetto Corda Alberto Ferrari Alberto Ferrari Ingegneria dell'informazione, UniPR file:///e:/cordanoweb/lez/array.html#3 1/33 Array (ordinamento) 2/33 file:///e:/cordanoweb/lez/array.html#3 2/33 Sort

Dettagli

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Matrici con Liste Lab09 5 Aprile 2017 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che verifica se una

Dettagli

UNIVERSITA DEGLI STUDI DI ROMA TOR VERGATA

UNIVERSITA DEGLI STUDI DI ROMA TOR VERGATA UNIVERSITA DEGLI STUDI DI ROMA TOR VERGATA Dipartimento di Ingegneria Industriale Corso di studio in Ingegneria Meccanica/Energetica Esame di Fondamenti di Informatica sessione estiva appello I A.A. 2015/16

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare

Dettagli

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

Programmare con MATLAB c Parte 5 Cicli: for e while

Programmare con MATLAB c Parte 5 Cicli: for e while Programmare con MATLAB c Parte 5 Cicli: for e while Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 La notazione due punti 2 Ciclo: for 3 Ciclo con controllo: while

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Claudia Zoccarato E-mail: claudia.zoccarato@unipd.it Dispense: Moodle Dipartimento ICEA 22 Marzo 2017 Vettori in

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Sorting Algorithms Prof. Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Sorting algorithms n selection sort n Insertion sort incremental algorithms progressively ext a

Dettagli

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:

Dettagli

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Matrici con Liste Lab09 10 Aprile 2018 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Outline Correzione esercizi per oggi Matrici Teoria Esercizi

Dettagli

Albero di Riscorsione

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

Dettagli

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati

Dettagli

INFORMATICA GENERALE

INFORMATICA GENERALE CAROSELLI STEFANO INFORMATICA GENERALE TESINA «LA TECNICA DEL DIVIDE-ET-IMPERA E DUE SUE IMPORTANTI APPLICAZIONI: IL QUICK SORT E IL MERGE SORT» La tecnica del DIVIDE-ET-IMPERA è un metodo di risoluzione

Dettagli

12 Function Handles e Ricorsione in MATLAB

12 Function Handles e Ricorsione in MATLAB 1 Function Handles e Ricorsione in MATLAB Un function handle è una variabile il cui valore è una funzione. Data una funzione esistente, il suo function handle è dichiarato come handle = @nome dove nome

Dettagli

MATLAB - Programmazione - 2. Antonino Polimeno

MATLAB - Programmazione - 2. Antonino Polimeno MATLAB - Programmazione - 2 Antonino Polimeno antonino.polimeno@unipd.it Manipolazione di matrici - 1 Input di matrici Definizione manuale: A = [1, 2, 3; 7, 8, 9] Generazione da funzioni Lettura da file

Dettagli

Esercitazione del 09/03/ Soluzioni

Esercitazione del 09/03/ Soluzioni Esercitazione del 09/03/2006 - Soluzioni. Conversione binario decimale ( Rappresentazione dell Informazione Conversione in e da un numero binario, slide 0) a. 0 2? 0 2 Base 2 Si cominciano a contare le

Dettagli

Laboratorio di Programmazione Appunti sulla lezione 5: Algoritmi di ordinamento (cont.) Alessandra Raffaetà. Bubblesort

Laboratorio di Programmazione Appunti sulla lezione 5: Algoritmi di ordinamento (cont.) Alessandra Raffaetà. Bubblesort Laboratorio di Programmazione Appunti sulla lezione : Algoritmi di ordinamento (cont.) Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Bubblesort Idea: Due elementi adiacenti

Dettagli

char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe

char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe Stringhe s char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); c i a o \0 Scrivere un programma che legga da input un array

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Dettagli

Algoritmi di ordinamento. Algoritmi. Selection sort semplificato - I. Selection sort semplificato - II

Algoritmi di ordinamento. Algoritmi. Selection sort semplificato - I. Selection sort semplificato - II Algoritmi Ver..4 Algoritmi di ordinamento Lo scopo è ordinare in senso [de]crescente il contenuto di un vettore di N elementi senza utilizzare un secondo vettore Esiste molta letteratura scientifica a

Dettagli