Bubble Sort

di il
2 risposte

Bubble Sort

Salve ragazzi vi posto il sorgente dell'ordinamento a bolle , alcuni passaggi non mi sono chiari.
Questo l'ho preso dal libro di fondamenti di c++ deitel.
//BUBBLE SORT: ORDINARE NUMERI IN ORDINE CRESCENTE


#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
const int arraySize=10;
int a[arraySize]={2,6,4,8,10,12,89,68,45,37};
int i; //contatore
int hold; //MEMORIZZA TEMPORANEAMENTE UNO DEI DUE VALORI DA SCAMBIARE

cout<<"Elementi in ordine originale"<<endl;

for(i=0;i<arraySize;i++)
cout<<setw(4)<<a; //Stampa a video gli elementi dell'array

for(int pass=0;pass<arraySize-1;pass++) //pass:passaggio
for(i=0;i<arraySize-1;i++)
if(a>a[i+1])
{
//istruzioni di scambio nel caso la condizione dell'if sia vera
hold=a;
a=a[i+1];
a[i+1]=hold;
}

cout<<endl<<endl;

cout<<"Elementi in ordine crescente";
//Stampa a video gli elementi ordinati
for(i=0;i<arraySize;i++)
cout<<setw(4)<<a;

cout<<endl;
return 0;
}

Il passaggio che non comprendo è questo:
for(int pass=0;pass<arraySize-1;pass++)
for(i=0;i<arraySize-1;i++)
Ho provato ad eliminare una delle due righe di codice alla volta e premere su Build and Run , e ho visto che non mi ordinava gli elementi dell'array.
Però non riesco a comprendere questo ciclo for nidificato cosa voglia dire.
Gli altri passaggi li ho compresi facilmente.


Vi ringrazio anticipatamente .

2 Risposte

  • Re: Bubble Sort

    Quel ciclo server proprio ad individuare gli elementi i e i+1 per confrontarli e se è il caso scambiarli.

    Prova a scrivere su carta come avviene l'esecuzione ...
  • Re: Bubble Sort

    Ti ringrazio facendo un flow chart ho capito.
Devi accedere o registrarti per scrivere nel forum
2 risposte