Fusion de deux tableaux triés dans un tableau trié également

Contenu du snippet

Ce programme permet,pour l'instant de fusionner deux tableaux triés dans l'ordre croissant en un seul tableau, lui aussi trié dans cet ordre.

Source / Exemple :


#include<iostream.h>
#include<conio.h>
int u[10],v[10],w[20];
int i,j,k,n,m,h,t,a;
void main()
{
	cout<<"\n      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
	cout<<"\tCE PROGRAMME LIT ET FUSIONNE DEUX LISTES D'ENTIERS TRIES DANS\n\n\t\t\t  UN TABLEAU EGALEMENT TRIE\n\n";
	cout<<"\n\t==============================================================\n";
	cout<<"\n\n\n\tDONNEZ LA TAILLE DE LA PREMIERE LISTE ( entre 1 et 10 ): ";
	cin>>n;
//------------------------| CONTRAINTES SUR LA TAILLE |--------------------------
	while(n<=0)
	{
		cout<<"\n\t CETTE VALEUR RST NEGATIVE. RETAPEZ UNE AUTRE.  Taille = ";
		cin>>n;
	}

//-------------------------|  TAILLE  SUPERIEURES A 10 |-------------------	
	while(n>10)
	{
		cout<<"\n\t TAPEZ UNE VALEUR INFERIEURE A 10.  Taille = ";
		cin>>n;
	}
	
	
//------------------------| REMPLISSAGE DU PREMIER TABLEAU |------------------------------
//             
	cout<<"\n\n\t  \4 ENTREZ LES "<<n<<" NOMBRES DE LA PREMIERE LISTE TRIEE\n";
	for(i=0;i<n;i=i+1)
	{
		cout<<"\n\t\t  Nombre "<<i+1<<": ";
		cin>>u[i];
		cout<<"\n";
		

	}
	

		
//------------------| RREMPLISSAGE DU SECOND TABLEAU  |----------------------------------------
//              
	cout<<"\n\tTAPEZ LA TAILLE DE LA SECONDE LISTE  ( entre 1 et 10 ): ";	
	cin>>m;
	while(m<=0)
	{
		cout<<"\n\t CETTE  VALEUR  EST NEGATIVE.RETAPEZ UNE AUTRE.  Taille = ";
		cin>>m;
	}
	while(m>10)
	{
		cout<<"\n\t TAPEZ UN NOMBRE INFERIEUR OU EGAL A 10.  Taille = ";
		cin>>m;
	}
	cout<<"\n";
	cout<<"\n\t  \4 ENTREZ LES "<<m<<" NOMBRES DE LA LISTE \n\n";
	for(j=0;j<m;j=j+1)
	{
		cout<<"\n\t\t  Nombre "<<j+1<<": ";
		cin>>v[j];
		cout<<"\n";
	}

//---------------------| FUSION PRPREMENT DITE DES  TABEAUX |-------------------------------------------

		i=0;
		j=0;
		k=0;
		h=n+m;
		while((i<n)&&(j<m))
		{
			if(u[i]<v[j])
			{
				w[k]=u[i];
				i=i+1;
			}
			else
			{
				w[k]=v[j];
				j=j+1;
			}
			k=k+1;
		}
//---------------------| CAS D'UN  DES TABLEAUX  QIU EST PLUS LONG |-----------  		
		while(i<n)
		{
			w[k]=u[i];
			i=i+1;
			k=k+1;
		}
		while(j<m)
		{
			w[k]=v[j];
			j=j+1;
			k=k+1;
		}
		
      
		
//-----------------------|  AFFICHAGE  |--------------------------------------                  

		cout<<"\n\tLISTE  1:";
		for(i=0;i<n;i=i+1)
		{
			cout<<"\t"<<u[i];
		}
		cout<<"\n";
		cout<<"\n";
		cout<<"\n\tLISTE  2:";
		for(j=0;j<m;j=j+1)
		{
			cout<<"\t"<<v[j];
		}
		cout<<"\n\n     ET VOICI LA LISTE RESULTANT DE LA FUSION:\n\n";
		
		cout<<"\t";
		for(k=0;k<m+n;k=k+1)
		{
			cout<<"   "<<w[k];
		}
		cout<<"\n\n\n\n";

}

Conclusion :


Je souhaite le rendre capable de trier les nombres de chaque liste au cas où un utilisateur entrerait un tableau non trié.

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.