Programma che ordina una sequenza di interi usando l'algoritmo di ordinamento BubbleSort realizzato mediante la ricorsione

/*
 Programma che ordina una sequenza di interi usando l'algoritmo di ordinamento
 BubbleSort realizzato mediante la ricorsione
*/

#include <iostream.h>
#define MAX 10

void BubbleSort(int, int);  //funzione di ordinamento
int array[MAX];

int main(){

 //lettura sequenza di numeri
 cout<<"Inserisci la sequenza di 10 numeri interi:\n";
 for(int x=0; x<MAX; x++){
  cout<<(x+1)<<": ";
  cin>>array[x];
 }

 BubbleSort(0,MAX-1);  //ordinamento

 //stampa sequenza ordinata
 cout<<"\nLa sequenza ordinata è:\n"<<endl;
 for (int i=0; i<MAX; i++)
  cout<<array[i]<<endl;
 return 0;
}

void BubbleSort(int i, int f){
 if(f!=0){

  //scambio tra i due elementi della bolla
  if(array[i]>array[i+1]){
   int box=0;
   box=array[i];
   array[i]=array[i+1];
   array[i+1]=box;
  }

  if(i==f-1) //se è arrivato alla fine della passata
   BubbleSort(0,f-1); //richiama la funzione ripartendo dal primo
          //elemento e riducendo di 1 elemento la grandezza
          //dell'array da controllare
  else        //se non è ancora arrivato alla fine della passata
   BubbleSort(i+1,f);  //richiama la funzione passando l'indice del
          //prossimo elemento
 }
}

fonte: http://www.devlabs.altervista.org/C++/esercizi/Bubble%20Sort/bubbleso.cpp

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)