che_gue
Messages postés1Date d'inscriptionlundi 8 juin 2009StatutMembreDernière intervention 8 juin 2009
-
8 juin 2009 à 11:27
Bonjour,
svp vous pouvez mé corrigé ce code concernant l'algorithme de tri
merci d'avance
#include<stdio.h>
#include<conio.h>
// fonction qui permet de trier tab en utilisant la methode de tri a bulle
int tri_bulle ( int tab[], int n)
{ int ok=0;
for (int i=0;(i<n)&&ok==0;i++)
{ok=1;
for (int j=0;j<n;j++)
{
if(tab[j]>tab[j+1])
{
int permuter (tab [j],tab[j+1])
tmp =tab[j+1];
tab[j+1]=tab [j];
tab[j]=tmp;
ok=0;
}
}
}
}
// fonction qui permet de trier tab en utilisant la methode de tri par insertion
// fonction qui permet de trier tab en utilisant la methode de tri sélection du minimum
/void Tri_select(int tab[],int n)
{
for (int i=0;i<n-1;i++)
{
int m=i;
for( int j=i+1; j<n ; j++)
if(tab[j] >tab[m]) m=j;
int tmp=tab[i];
tab[i]=tab[m];
tab[m]=tmp;
}
}
// fonction qui permet de trier tab en utilisant la methode de tri par permutation
void Tri_permut( int tab[])
{
int i,j,tmp;
for (i=n-1; i>0; i--)
{
for (j=n-1; j>=0; j--)
{ if ( tab[i]<tab[j])
tmp=tab[i];
tab[i]=tab[j];
tab[j]=tmp;
}
}
// }
// fonction qui permet de trier tab en utilisant la methode de tri rapide
/int partition (int tab[], int inf, int sup)
{ int piv=tab[(inf+sup/2)];
int i=inf;
int j=sup;
while(i<j)
{
while(piv>tab[j])
j--;
while(piv<tab[i])
i++;
if(i<j)
{
int tmp=tab[i];
tab[i]=tab[j];
tab[j]=tmp;
}
}
return j;
}
tri rapide(int tab[],int inf, int sup)
{ if(n>1)
{ int piv=partition(tab,inf,sup);
tri rapide (tab,inf,piv-1à;
tri rapide (tab,piv+1,sup);
}
// }
// fonction qui permet de trier tab en utilisant la methode de tri fusion
void fusion (int tab[30],int A[10],int B[20],int a,int b)
{ int i,j,k=0;
for(i=0;j=0;(i<a)&&(j<b);k++)
{if(A[i]<B[j])
{tab[k]=A[i];
i++;
}
else
{ tab[k]=B[j];
j++;
}}
while (i<a)
{tab[k]=A[i];
k++;
}
i++;
while (i<b)
{tab[k]=B[j];
k++;
}
j++;
}
void tri_fusion(int tab[],int n)
{ if(n>1)
{ n=n/2;
division (tab,n,t1,n1,t2);
tri fusion (t1,n1);
tri fusion (t2,n2);
fusion (tab,n,t1,n1,t2);
}
}
// Programme principale
int main()
{
int n,t[30],t1[30],t2[30];
printf(" entrer la dimension n ");
scanf("%d",&n);
for(int i=0;i<n;i++)
{ printf(" entrer l element %d ",i+1);
scanf("%d",&t[i]);
}
printf(" \n Affichage de T avant le triage : \n ");
for(int i=0;i<n;i++)
printf(" %5d ",t[i]);