Tri shell

Contenu du snippet

petit prog pour trier un tableau de chiffres...

Source / Exemple :


#include <iostream.h>
//////////prototypes//////////
entree ();
print ();
tric();
trid();
//////////variables globales//////////
int n;
float tab [20];
//////////fonction principale//////////
void main()
{
char a;
cout<<"     fonction tri SHELL\n";
cout<<"     *******************\n\n\n";
entree () ;
print ()   ;
do
	{
   cout<<endl<<"voulez vous un tri croissant(c) ou décroissant(d)";
   cin>>a;
   }
while ( a!='c' && a!='d');
if (a=='c')
	{
   tric();
   }
if (a=='d')
	{
   trid();
   }

cout<<endl<<"après le tri:"<<endl;
print();
}

//////////entrée des nombres//////////
entree ()
{
int i;
do
   {
	cout<<"entrez le nombre d' elements a trier(max: 20):";
	cin>>n;
	}
while (n>20);
for (i=0;i<n;i++)
	{
   cout<<endl<<"entrez le nombre n°"<<(i+1)<<":";
   cin>>tab[i];
   }
}
//////////affichage des nombres//////////

print ()
{
int i;
cout<<"le tableau vaut:"<<endl;
for (i=0;i<n;i++)
	{
   cout<<tab[i]<<"	  ";
   }

}
//////////fonction tri croissant//////////
tric ()
{
int i,A=n;
float x;
bool b=0;
do
	{
   A=A/2;
	do
		{
   	b=0;
   	for(i=0;i<n-A;i++)
   		{
      	if(tab[i]>tab[i+A])
      		{
            b=1;
         	x=tab[i];
         	tab[i]=tab[i+A];
         	tab[i+A]=x;
         	}
      	}
		}
	while (b==1);
   }
while(A!=1);
}
//////////fonction tri décroissant//////////
trid ()
{
int i,A=n;
float x;
bool b=0;
do
	{
   A=A/2;
	do
		{
   	b=0;
   	for(i=0;i<n-A;i++)
   		{
      	if(tab[i]<tab[i+A])
      		{
            b=1;
         	x=tab[i];
         	tab[i]=tab[i+A];
         	tab[i+A]=x;
         	}
      	}
		}
	while (b==1);
   }
while(A!=1);
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.