Tri fusion récursif

Fermé
victoria ghabri Messages postés 95 Date d'inscription jeudi 27 septembre 2012 Statut Membre Dernière intervention 3 juin 2014 - 9 déc. 2012 à 18:28
Bonjour,
voila j'ai un programme a executer le tri a fusion..aprés saisie des elements du tableau ,aparement il m'affiche des adresses memoires..je ne suis pas parvenue a resoudre le probléme..
voila le code c++ :
*****#include <iostream>

using namespace std;
void fusionner(int A[],int i,int q,int r)
{
int j,k,l;
int B[50];

j=i;k=q+1;l=0;


while ((j<q)&& (k<r))
{
if(A[j]<A[k])
{
B[l]=A[j];

j++;
}
else
{B[l]=A[k];
k++;}
l++;


}
while(k<r)
{
B[l]=A[k];
k++;
l++;
}
while(j<q)
{
B[l]=A[j];
j++;
l++;
}

for(int v=i;v<r;v++)
{
A[v]=B[v];
}
}
void tri_fusion(int A[],int i,int r)
{ int q;
if (i<r)
{q=(i+r)/2;
tri_fusion(A,i,q);
tri_fusion(A,q+1,r);
fusionner(A,i,q,r);
}

}

void saisie (int r,int A[])
{ int i;
for( i=0;i<r;i++)
{
cout<<"donner un element"<<endl;
cin>>A[i];
}
}
void affiche(int r,int A[])
{ int i ;
for(i=0;i<r;i++)
cout<<A[i]<<endl;}

int main()
{ int A[50],r;
cout<<"donner la taiile r"<<endl;
cin>>r;
saisie(r,A);
affiche(r,A);
tri_fusion(A,0,r);
cout<<"***************"<<endl;
affiche(r,A);
return 0;
}
***********fin code*******
et mercii d'avance :)))




A voir également: