Tri itératif
Trier un tableau d'entiers
#include <stdio.h>
#include <stdlib.h>
void tri( int t[], int n)
//un tableau et le nombre d'éléments de ce tableau
{
#include <stdlib.h>
void tri( int t[], int n)
//un tableau et le nombre d'éléments de ce tableau
{
int temp, k1, k2;
for (k1=0;k1<n;k1++)
}for (k1=0;k1<n;k1++)
for (k2=0;k2<n;k2++) //nous modifierons k2=0; en K2=k1+1;
if (t[k1]<t[k2])
{
{
temp=t[k1];
t[k1]=t[k2];
t[k2]=temp;
}t[k1]=t[k2];
t[k2]=temp;
Modularité
Nous pouvons découper le programme de tri en sous-fonctions:
- Comparer deux éléments.
- Permuter deux éléments.
Comparer deux entiers
int compare(int x, int y)
{ return x-y ; }
{ return x-y ; }
Valeurs retournées:
- <0 si x<y
- 0 si x=y
- >0 si x>y
Permuter deux entiers
Permutation par les pointeurs (langage C)
void permute(int *x, int *y)
{
{
int w ;
w=*x;
*x=*y;
*y=w;
}w=*x;
*x=*y;
*y=w;
Permutation par référence (langage C++)
void permute(int &x, int &y)
{
{
int w ;
w=x;
x=y;
y=w;
}w=x;
x=y;
y=w;
Sniplets pour trier un tableau
Trier un tableau en C
void tri( int t[], int n)
{
{
int p, temp, k1, k2;
for (k1=0;k1<n;k1++)
{
}for (k1=0;k1<n;k1++)
{
p=k1;
for (K2=k1+1;k2<n;k2++)
if ( compare(t[k1],t[k2]) >0 ) {p=k2;}
permute(&t[k1], &t[k2]);
}for (K2=k1+1;k2<n;k2++)
if ( compare(t[k1],t[k2]) >0 ) {p=k2;}
permute(&t[k1], &t[k2]);
Trier un tableau en C++
void tri( int t[], int n)
{
{
int p, temp, k1, k2;
for (k1=0;k1<n;k1++)
{
}for (k1=0;k1<n;k1++)
{
p=k1;
for (K2=k1+1;k2<n;k2++)
if ( compare(t[k1],t[k2]) >0 ) {p=k2;}
permute(t[k1], t[k2]);
}for (K2=k1+1;k2<n;k2++)
if ( compare(t[k1],t[k2]) >0 ) {p=k2;}
permute(t[k1], t[k2]);
Version en cache
18/12/2024 16:40:28 Cette version de la page est en cache (à la date du 18/12/2024 16:40:28) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 12/03/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/c-trier-tableau.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.