Posez votre question Signaler

Algorithme de tri en langage C

mickaeli89 1Messages postés 9 décembre 2010Date d'inscription 7 février 2011Dernière intervention - Dernière réponse le 7 févr. 2011 à 17:10
Bonjour,
Je fais de la programmation en Visual Basic maintenant je veux me formé en langage C. Je suis actuellement confronté à un problème. Je cherche un algorithme de tri rapide pour un tableau contenant n éléments de type entier en langage C bien sûr.
Merci pour votre aide
Lire la suite 

Algorithme de tri en langage C »

Suggestions
4 réponses
Réponse
+1
moins plus
pour votre question il exist 4 Méthode de trie :
la premier c"est le trie par Bulle:(Copier ce code)

#include <stdio.h>
void main()
{
printf("_______________________________________________________________________________\n\n");
printf("=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf(" |~~~~~~~~~ ~~~ ~~~ ~~~ ~~~ ~ ~~~~ ~ ~~~~~~~~~~|\n");
printf(" |~~~~~~~~~~~ ~~~~~ ~~~~~~~ ~~~~~~~ ~~~ ~~~ ~~ ~~ ~~ ~~~~~~~~~~|\n");
printf(" |~~~~~~~~~~~ ~~~~~ ~~~ ~~~ ~~~ ~~~~ ~~~ ~~~~~~~~~~|\n");
printf(" |~~~~~~~~~~~ ~~~~~~~~~ ~~~~~~~ ~~~ ~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~|\n");
printf(" |~~~~~~~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~|\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n");
printf("_______________________________________________________________________________\n");
int i,n,inter,trier; //declaration
printf("Entrer la dimension du tableau : ");
scanf("%d",&n);
int t[n];
printf("--------------------------------\n");
/*remplissage*/
for(i=1;i<=n;i++)
{
printf("Entrer l'element T[%d] : ",i);
scanf("%d",&t[i]);
}
printf("--------------------------------\n");
/*affichage*/
printf("le tableau est : \n\n");
for(i=1;i<=n;i++)
printf(" %d |",t[i]);
printf("\n");
printf("--------------------------------\n");
/*tri bulle */
do
{
trier=1;
for(i=1;i<n;i++)
{
if(t[i]>t[i+1])
{
inter=t[i];
t[i]=t[i+1];
t[i+1]=inter;
trier=0;
}
}
}
while(trier!=1);
/*afficher le tri bulle*/
printf("______________________________________________________________\n");
printf("| |\n");
printf("| ***** ***** ***** ***** * * * * ***** |\n");
printf("| * * * * * * * * * * * |\n");
printf("| * ***** * ***** * * * * ***** |\n");
printf("| * * * * * * * * * * * |\n");
printf("| * * * ***** ***** ***** ***** ***** ***** |\n");
printf("|____________________________________________________________|\n");
printf("--------------------------------\n");
printf("le tableau trie par tri bulle : \n\n");
for(i=1;i<=n;i++)
printf(" %d |",t[i]);
printf("\n");
printf("--------------------------------\n");
getch();
}
Ajouter un commentaire
Réponse
+0
moins plus
Utilise la Methode <code>qsort</pre>

voici un example:
http://sakoba.byethost13.com/2011/02/07/c-sorting-an-array/
Ajouter un commentaire
Réponse
+0
moins plus
La deuxième methode est Permutation:(copie ce code)
#include <stdio.h>
#include <conio.h>
void main()
{
printf("_______________________________________________________________________________\n");
int i,j,k,n,inter; //declaration
printf("Entrer la dimension du tableau : ");
scanf("%d",&n);
int t[n];
printf("__________________________________\n");
/*remplissage*/
for(i=1;i<=n;i++)
{
printf("Entrer l'element T[%d] : ",i);
scanf("%d",&t[i]);
printf("----------------------------------\n");
}
printf("__________________________________\n");
/*affichage*/
printf("le tableau est : \n");
printf("----------------------------------\n");
for(i=1;i<=n;i++)
{
printf(" %d |",t[i]);
}
printf("\n");
printf("----------------------------------\n");
printf("__________________________________\n");
/*tri par permutation*/
for(i=1;i<n;i++)
{
if(t[i]>t[i+1])
{
inter=t[i+1];
j=1;
while(t[j]<inter)
j++;
for(k=i;k>=j;k--)
t[k+1]=t[k];
}
t[j]=inter;
}
/*afficher tri par permutation*/
printf("--------------------------------\n");
printf("le tableau trie par permutation : \n");
printf("--------------------------------\n");
for(i=1;i<=n;i++)
printf(" %d |",t[i]);
printf("\n");
printf("--------------------------------\n");
getch();
}
bokhabrine- 7 févr. 2011 à 17:10
Si tu veux l'autre méthode je suis à prés pour les réaliser
Ajouter un commentaire
Ce document intitulé « algorithme de tri en langage C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?