Scaricare la presentazione
PubblicatoNoelia Bartolini Modificato 10 anni fa
1
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”
2
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”
3
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”
4
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”
5
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”
6
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”
7
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”
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.