/*
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
Posta un commento