C++BuilderX - tris.c
#include <stdio.h>
#include <stdlib.h>
#define true 1
#define false 0
typedef int boolean;
void permuter( int * a, int * b )
{
int c;
c = * a;
* a = * b;
* b = c;
}
/*****
* Tri Par sélection
******/
void triSelection(int T[],int n)
{
int max, i; //max: Indice de la plus grande valeur à rechercher.
while(n>0)
{
//On recherche l'indice de la plus grande valeur du tableau non encore trié
max=0;
for(i=1;i<n;i++)
{
if(T[i]>T[max]) max=i;
}
//On échange la plus grande valeur avec la dernière.
permuter(&T[max],&T[n-1]);
//On traite le reste du tableau
n--;
}
}
/*****
* Tri Bulle (Bubble Sort)
******/
void triBulle( int T[], int n )
{
int i;
boolean permutation;
do
{
permutation = false;
for ( i = 0; i < n - 1; i++ )
{
if ( T[i] > T[i + 1] )
{
permuter( & T[i], & T[i + 1] );
permutation = true;
}
}
}
while ( permutation );
}
/*****
* Tri Par insertion
******/
void triInsertion(int T[], int longueur)
{
int i, tampon, compt, decalage;
for(i=1;i<longueur;i++)
{
tampon=T[i];
compt=i;
do
{
decalage=false;
if (T[compt-1]>tampon)
{
T[compt]=T[compt-1];
compt--;
decalage=true;
}
if (compt<=0) decalage=false;
}
while(decalage);
T[compt]=tampon;
}
}