Algorithme de tri

Fermé
che_gue Messages postés 1 Date d'inscription lundi 8 juin 2009 Statut Membre Derniè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

void Tri_inser(int tab[],int n)
{
for(int i=1;i<n;i++)
{
for(int j=0;j<i;j++)
if(tab[i]<tab[j])
{
int tmp=tab[i];
for(int k=i;k>=j;k--)
tab[k]=tab[k-1];
tab[j]=tmp;
}
}
}

// 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++;
}

diviser (int tab,n,t1,n2,t2)
{int j,i;
n1=n/2;
n2=n-n1;

for(i=0;i<n1;i++)
t1[i]=tab[i];
for(j=0;i=n+1;(j<n2)&&(i<n);i++;j++)
t2[j]=tab[i];
}

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]);

getch();
return 0;
}