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 poi ricercato nuovamente quello maggiore e scambiato con il secondo e così via fino all’ultimo elemento. Obiettivo:ottenere un insieme di elementi,ordinato in maniera decrescente
56382 Osservazione : Per implementare l’Algoritmo abbiamo bisogno di 2 indici : Uno che tiene conto della posizione in cui si trova l’elemento da ordinare ( primo, secondo, terzo, … ) Uno che permette di scorrere l’array alla ricerca del valore maggiore
56382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=0
56382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=1 A[0]<A[1] scambio
65382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=1 A[0]<A[1] scambio
65382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=2 A[0]>A[2] No scambio
65382 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=3 A[0]>A[3] scambio
85362 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=3 A[0]>A[3] scambio
85362 I passi da seguire sono i seguenti : 1)Posizionamento sul primo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il primo elemento dell’array Indice1=0 Indice2=4 A[0]<A[4] No scambio
85362 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=1 A[1]=A[1] No scambio
85362 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=2 A[1]>A[2] No scambio
85362 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=3 A[1]<A[3] scambio
86352 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=3 A[1]<A[3] scambio
86352 I passi da seguire sono i seguenti : 1)Posizionamento sul secondo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il secondo elemento dell’array Indice1=1 Indice2=4 A[1]>A[4] No scambio
86352 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=2 A[2]=A[2] No scambio
86352 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=3 A[2]<A[3] scambio
86532 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=3 A[2]<A[3] scambio
86532 I passi da seguire sono i seguenti : 1)Posizionamento sul terzo elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il terzo elemento dell’array Indice1=2 Indice2=4 A[2]>A[4] No scambio
86532 I passi da seguire sono i seguenti : 1)Posizionamento sul quarto elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il quarto elemento dell’array Indice1=3 Indice2=3 A[3]=A[3] No scambio
86532 I passi da seguire sono i seguenti : 1)Posizionamento sul quarto elemento dell’array 2)Ricerca dell’elemento più grande e scambio con il quarto elemento dell’array Indice1=3 Indice2=4 A[3]>A[4] No scambio
#include Using namespace std; int x,N=5,temp; int V[N]; main() { for (int i=0;i<N;i++) // inserimento del vettore { cout<<"Inserire l'elemento: "<<i+1<<" "; cin>>V[i]; }
for (int i=0;i<N-1;i++) // dal primo al 5° elemento { x = i+1; do { if (V[ i ] <[ i+1 ]) { // effettuare scambio degli elementi temp = V[ i ]; V[ i ] = V[ x ]; V[ x ] = temp; } x++; } while( x < N ); } // visualizzazione del vettore ordinato mediante l'algoritmo cout<<"Il vettore ordinato e\' il seguente : "<<endl; for (int i=0;i<N;i++) cout<<V[i]<<endl; } // chiude il main Con FOR e WHILE
for (int i=0;i<N-1;i++) // dal primo al 5° elemento { for (int x=i+1;x<N;x++) // dal secondo al 6° elemento { if (V[ i ] <[ x ]) { // effettuare scambio degli elementi temp = V[ i ]; V[ i ] = V[ x ]; V[ x ] = temp; } // visualizzazione del vettore ordinato mediante l'algoritmo cout<<"Il vettore ordinato e\' il seguente : "<<endl; for (int i=0;i<N;i++) cout<<V[i]<<endl; } // chiude il main Con 2 cicli FOR annidati