Problema dell’ordinamento di un array: Il metodo Bubble Sort.

Slides:



Advertisements
Presentazioni simili
C++ Di Marco Cozzani.
Advertisements

Gli Algoritmi di ordinamento
INFORMATICA Algoritmi fondamentali
String c++.
Unità G3 Algoritmi notevoli. Ordinamento Un insieme di dati {a0, a1, a2, …, an} si dice ordinato in ordine crescente se a0 a1 a2 a3 … an I dati sono generalmente.
Algoritmi notevoli.
Algoritmi notevoli In linguaggio C.
Programmazione Ingegneria TLC
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 1 06/06/2006UNIROMA2-ING OOP Programmazione.
PROGRAMMI DI RICERCA E ORDINAMENTO
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Esercitazione 3 (5 dicembre 2008)
e array a più dimensioni
Ordinamento di una lista: bubble-sort
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN.
Selezione (=scelta) con “if-else”
Strutture di controllo in C -- Flow Chart --
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Esercizi C su array e matrici
Introduzione a:. Nella prima parte di questo corso si vedranno i CONCETTI di: CLASSE (programma) METODO (Algoritmi e dati) CONCETTI CLASSICI DI PROGRAMMAZIONE.
Elementi di Informatica di base
Sistemi e Tecnologie Informatiche
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Diagramma di flusso del problema del Supermercato.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Vedremo in seguito che (n log n) è un limite stretto per il problema dellordinamento. Per ora ci limitiamo a dimostrare che: La complessità nel caso pessimo.
Massimo Comun Divisore
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
IL MASSIMO DI UN ARRAY ESERCIZIO
BIOINFO3 - Lezione 251 ARRAY ASSOCIATIVI E possibile assegnare tutti gli elementi dellarray con ununica istruzione %anni=(Marco,30,Luigi,33,Anna,28,Chiara,25);
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Conversione da base 10 a base X (Utilizzo della pila)
Corso di Programmazione in Java – Esercizio n° 001
Diagramma di flusso del problema dello stipendio del rappresentante.
1 Applet ed HTML Fondamenti di Informatica Corso D.
Lezione n° 07 - Esercitazione
Corso JAVA Lezione n° 02 Istituto Statale di Istruzione Superiore “F. Enriques”
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
Programmazione ad oggetti
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
ALGORITMO Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un formalismo che permette di rappresentare.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
CORSO DI PROGRAMMAZIONE II
Gestione dei thread in Java
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Array (visita e ricerca) CORDA – Informatica A. Ferrari.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
L’ordinamento per Selezione seleziona l’elemento con valore maggiore e lo scambia con il primo elemento del vettore. Tra gli N-1 elementi rimanenti viene.
Fondamenti di informatica T-A Esercitazione 2 : Linguaggio Java, basi e controllo del flusso AA 2012/2013 Tutor : Domenico Di Carlo.
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
GLI ALGORITMI DI ORDINAMENTO
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Transcript della presentazione:

Problema dell’ordinamento di un array: Il metodo Bubble Sort. Corso di Programmazione in Java – Esercizio n° 005 Esercizio n° 005 Problema dell’ordinamento di un array: Il metodo Bubble Sort. Istituto Statale di Istruzione Superiore “F. Enriques”

L’ordinamento di un array: Bubble Sort Corso di Programmazione in Java – Esercizio n° 005 L’ordinamento di un array: Bubble Sort Da un array di 10 elementi di tipo int, si vuole restituire lo stesso array ordinato in ordine crescente. Fornire sia il diagramma di flusso che il relativo codice Java. Quindi: Se in input abbiamo Es. array[0]=15; array[1]=10; array[2]=21; array[3]=5; L’array da restituire sarà il seguente: array[0]=5; array[1]=10; array[2]=15; array[3]=21; Il problema dell’ordinamento di un array è uno dei problemi informatici più famosi: tutt’oggi ricercatori stanno studiano nuovi algoritmi con l’obiettivo di trovare il metodo più veloce. Noi vedremo uno dei metodi classici: l’algoritmo Bubble Sort Istituto Statale di Istruzione Superiore “F. Enriques”

Come funziona il metodo Bubble Sort Corso di Programmazione in Java – Esercizio n° 005 Dato un array si prende l’elemento nella prima posizione e lo si confronta con quello in seconda posizione. Se il primo è maggiore del secondo, si scambiano di posizione; altrimenti si prosegue confrontando il secondo elemento con il terzo e così via… Es.: supponiamo di voler ordinare questo array: 15 6 4 10 11 2 15 6 4 10 11 2 6 4 10 15 11 2 6 15 4 10 11 2 6 4 10 11 15 2 6 4 15 10 11 2 6 4 10 11 2 15 Quando raggiungo la fine dell’array l’elemento più grande è stato messo in ultima posizione; a questo punto riparto da primo e ripeto la stessa procedura, fermandomi al penultimo elemento dell’array.. Istituto Statale di Istruzione Superiore “F. Enriques”

Soluzione dell’esercizio n° 005 Corso di Programmazione in Java – Esercizio n° 005 Soluzione dell’esercizio n° 005 Istituto Statale di Istruzione Superiore “F. Enriques”

Diagramma di flusso del Bubble Sort Corso di Programmazione in Java – Esercizio n° 005 Diagramma di flusso del Bubble Sort Inizio falso vero i = 0 temp = 0 i < j-1 vero falso Array x x[i] > x[i+1] j = lunghezza array-1 temp = x[i] x[i] = x[i+1] vero j > 0 falso x[i+1] = temp Fine j= j-1 i= i + 1 Istituto Statale di Istruzione Superiore “F. Enriques”

Traduzione in Java del D.d.F. Corso di Programmazione in Java – Esercizio n° 005 public void main (String[] args) { int prova [] = {5,18,46,52,83,37,22,51,3,61}; int temp = 0; int j = prova.length; System.out.print(“Array non ordinato: ”); for (i=0; i<prova.lenght; i++) System.out.print(“ ” + prova[i] ); while ( j > 0 ){ for ( int i = 0; i < j-1; i++ ){ if ( prova[i] > prova[i+1] ){ temp = prova[i]; prova[i] = prova[i+1]; prova[i+1] = temp; }; j--; System.out.print(“Array ordinato: ”); for (i=0; i<prova.lenght; i++) System.out.print(“ ” + prova[i]); Istituto Statale di Istruzione Superiore “F. Enriques”

Bubble Sort in azione j i Array Corrente j i Array Corrente - 15 6 4 Corso di Programmazione in Java – Esercizio n° 005 Bubble Sort in azione j i Array Corrente j i Array Corrente - 15 6 4 10 11 2 4 6 10 11 2 15 5 6 15 4 10 11 2 4 3 6 10 2 11 15 5 1 6 4 15 10 11 2 3 4 6 2 10 11 15 5 2 6 4 10 15 11 2 1 4 6 10 11 15 5 3 6 4 10 11 15 2 1 2 4 6 10 11 15 5 4 6 10 11 2 15 Nella tabella sono indicati i valori degli indici i e j del passo corrispondente, relativi al codice Java della diapositiva precedente. Sono inoltre evidenziati i valori che vengono scambiati. Istituto Statale di Istruzione Superiore “F. Enriques”