151 lines
5.7 KiB
C
151 lines
5.7 KiB
C
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
#include <malloc.h>
|
|||
|
#include <unistd.h>
|
|||
|
#include <string.h>
|
|||
|
#include "tris.h"
|
|||
|
|
|||
|
|
|||
|
/* -------------------------------------------------------------------------- */
|
|||
|
/* echanger */
|
|||
|
/* void echanger(int *t, int n1, int n2) */
|
|||
|
/* */
|
|||
|
/* Echanger les <20>l<EFBFBD>ments d'indice [n1] et [n2] du tableau d'entiers [t] */
|
|||
|
/* */
|
|||
|
/* Entr<74>es : */
|
|||
|
/* - [t] : tableau d'entiers */
|
|||
|
/* - [n1] : indice */
|
|||
|
/* - [n2] : indice */
|
|||
|
/* */
|
|||
|
/* Modifications : */
|
|||
|
/* - [t] : tableau d'entiers */
|
|||
|
/* */
|
|||
|
/* -------------------------------------------------------------------------- */
|
|||
|
|
|||
|
void echanger(int *t, int n1, int n2)
|
|||
|
{
|
|||
|
int inter;
|
|||
|
|
|||
|
inter = t[n1];
|
|||
|
t[n1] = t[n2];
|
|||
|
t[n2] = inter;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* -------------------------------------------------------------------------- */
|
|||
|
/* tri_[algo_tri] */
|
|||
|
/* void tri_[algo_tri] (int *t, int n, structSondes *complexite) */
|
|||
|
/* */
|
|||
|
/* Trier le tableau d'entiers [t] <20> [n] <20>l<EFBFBD>ments */
|
|||
|
/* [algo_tri] : bulle_naif, bulle_bool, bulle_opt, selection, insertion */
|
|||
|
/* */
|
|||
|
/* Entr<74>es : */
|
|||
|
/* - [t] : tableau d'entiers */
|
|||
|
/* - [n] : nombre d'entiers du tableau */
|
|||
|
/* */
|
|||
|
/* Modifications : */
|
|||
|
/* - [t] : tableau d'entiers */
|
|||
|
/* */
|
|||
|
/* Sorties : */
|
|||
|
/* - [sondes] : structure r<>sultat des sondes sur l'algorithme */
|
|||
|
/* sondes.nb_comparaisons */
|
|||
|
/* sondes.nb_echanges */
|
|||
|
/* sondes.nb_copies */
|
|||
|
/* -------------------------------------------------------------------------- */
|
|||
|
|
|||
|
structSondes tri_bulle_naif(int *t, int n)
|
|||
|
{
|
|||
|
int i, j;
|
|||
|
structSondes sondes = {0, 0, 0};
|
|||
|
|
|||
|
|
|||
|
return sondes;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
structSondes tri_bulle_bool(int *t, int n)
|
|||
|
{
|
|||
|
// A faire : utilisation d'un drapeau (bool<6F>en) qui teste que les donn<6E>es sont tri<72>es
|
|||
|
// en une lecture des donn<6E>es
|
|||
|
|
|||
|
|
|||
|
structSondes sondes = {0, 0, 0};
|
|||
|
|
|||
|
return sondes;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
structSondes tri_bulle_opt(int *t, int n)
|
|||
|
{
|
|||
|
// A faire : on teste l'endroit du dernier <20>change pour modifier la boucle principale.
|
|||
|
// Si le dernier <20>change est entre t_0 et t_1 alors on a termin<69>.
|
|||
|
|
|||
|
structSondes sondes = {0, 0, 0};
|
|||
|
|
|||
|
|
|||
|
return sondes;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
structSondes tri_selection(int *t, int n)
|
|||
|
{
|
|||
|
|
|||
|
structSondes sondes = {0, 0, 0};
|
|||
|
|
|||
|
return sondes;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
structSondes tri_insertion(int *t, int n)
|
|||
|
{
|
|||
|
|
|||
|
structSondes sondes = {0, 0, 0};
|
|||
|
|
|||
|
return sondes;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* -------------------------------------------------------------------------- */
|
|||
|
/* tri_rapide */
|
|||
|
/* void tri_rapide (int *t, int gauche, int droite, structSondes *complexite)*/
|
|||
|
/* */
|
|||
|
/* Trier la portion du tableau d'entiers [t] comprise entre les indices */
|
|||
|
/* [gauche] et [droite] */
|
|||
|
/* */
|
|||
|
/* Entr<74>es : */
|
|||
|
/* - [t] : tableau d'entiers */
|
|||
|
/* - [gauche] : indice gauche */
|
|||
|
/* - [droit] : indice droit */
|
|||
|
/* */
|
|||
|
/* Modifications : */
|
|||
|
/* - [t] : tableau d'entiers */
|
|||
|
/* */
|
|||
|
/* Sorties : */
|
|||
|
/* - [sondes] : structure r<>sultat des sondes sur l'algorithme */
|
|||
|
/* sondes.nb_comparaisons */
|
|||
|
/* sondes.nb_echanges */
|
|||
|
/* sondes.nb_copies */
|
|||
|
/* -------------------------------------------------------------------------- */
|
|||
|
|
|||
|
structSondes tri_rapide(int *t, int gauche, int droite)
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
structSondes sondes = {0, 0, 0};
|
|||
|
|
|||
|
return sondes;
|
|||
|
|
|||
|
}
|