Exercices langage C Tri par insertion avec fonctions

Exercice 1 Tri par insertion

Ecrire la fonction TRI_INSERTION qui utilise la fonction INSERER pour trier par ordre croissant les éléments d'un tableau à N éléments.

Ecrire un programme pour tester la fonction TRI_INSERTION.

Méthode: Trier le tableau de gauche à droite en insérant à chaque fois l'élément I+1 dans le tableau (déjà trié) des I premiers éléments.

Exercice 2

Ecrire la fonction RANGER qui arrange le contenu de ses deux paramètres X et Y de façon à ce que le contenu de X soit plus petit que celui de Y. RANGER retourne la valeur logique 1 si un échange a eu lieu, sinon 0.

#include

main()
{
/* Prototypes des fonctions appelées */
void TRI_INSERTION(int *T, int N);
void LIRE_TAB (int *TAB, int *N, int NMAX);
void ECRIRE_TAB (int *TAB, int N);
/* Variables locales */
int T[100]; /* Tableau d'entiers */
int DIM; /* Dimension du tableau */
/* Traitements */
LIRE_TAB (T, &DIM, 100);
printf("Tableau donné : \n");
ECRIRE_TAB (T, DIM);
TRI_INSERTION(T, DIM);
printf("Tableau trié : \n");
ECRIRE_TAB (T, DIM);
return 0;
}


void TRI_INSERTION(int *T, int N)
{
void INSERER(int X, int *T, int *N);
/* Variables locales */
int I; /* indice courant */
/* Tri de T par insertion */
I=1;
while (IINSERER(*(T+I), T, &I);
}

void INSERER(int X, int *T, int *N)
{
. . .
}

void LIRE_TAB (int *TAB, int *N, int NMAX)
{
. . .
}

void ECRIRE_TAB (int *TAB, int N)
{
. . .
}

int RANGER(int *X, int *Y)
{
int AIDE;
if (*X>*Y)
{
AIDE = *X;
*X = *Y;
*Y = AIDE;
return 1;
}
else
return 0;
}

Article publié le 06 Février 2011 Mise à jour le Mardi, 08 Novembre 2022 00:44 par Salim KHALIL