// Programme TriBulles
/* Trier un tableau à 2 dimensions par la méthode de tri à bulle */
#include <iostream>
using namespace std;
const short max = 10;
typedef short table[max];
void saisirTab(table tab, short taille);
void afficherTab(table tab, short taille);
void echanger2E(short& nb1, short& nb2);
void trieBulles(table tabEnt, short taille);
void main()
{
table tab;
short taille;
do
{
cout << "Nombre d'éléments du tableau (2 à " << max << ") ? ";
cin >> taille;
}
while ((taille < 2) || (taille > max));
saisirTab(tab, taille);
trieBulles(tab, taille);
cout << "Tableau trié : ";
afficherTab(tab, taille);
cout << endl;
}
void trieBulles(table tabEnt, short taille)
/* Trier en ordre croissant un tableau à 1 dimension par la méthode de tri à bulle */
{
bool permut; /* Vrai s'il y a eu au moins une permutation dans l'itération en cours. */
do
{
permut = false;
for(short i=0 ; i<taille-1 ; i++)
{
if (tabEnt[i] > tabEnt[i+1])
{
echanger2E(tabEnt[i], tabEnt[i+1]);
permut = true;
}
}
}
while (permut);
}
void saisirTab(table tabEnt, short taille)
// Saisit les éléments d'un tableau à 1 dimension
{
for(short i=0;i<taille;i++)
{
cout << "Entrer l'élément " << i+1 << " du tableau : ";
cin>>tabEnt[i];
}
cout << endl;
}
void afficherTab(table tabEnt, short taille)
// Affiche les éléments d'un tableau à 1 dimension
{
for(short i=0;i<taille;i++) cout << tabEnt[i] << " ";
cout << endl;
}
void echanger2E(short& nb1, short& nb2)
// Échanger les valeurs de 2 entiers
{
short tampon = nb1;
nb1 = nb2;
nb2 = tampon;
}