begin process at 2012 05 27 21:05:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > TRI A BULLES

TRI A BULLES


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :29/01/2003 Date de mise à jour :29/01/2003 05:38:29 Vu / téléchargé :4 092 / 104

Auteur : kortal

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

le programme demande le nombre d'entiers a traiter. celui ci est limité a 50 par défaut par la variable NMAX
ensuite, il génere autant de nombre que demandé compris entre 1 et 400 (VALMIN et VALMAX)

PS: vu que ce prog a été codé en cours, il est largement commenté et relativement clair, donc je pense que vous n'aurez pas de mal a le comprendre.


le fichier source est ds le zip si vous avez des pbspetit exemple de tri a bulle. codé en cours.

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <time.h> /* on utlise la bibliothèque time.h pour la fonction rand */
  • #define NMAX 50 /* nombre maximum d'éléments */
  • #define VALMIN 1 /* valeur mimnimale que peut avoir un élément du tableau */
  • #define VALMAX 400 /* valeur maximale que peut avoir un élément du tableau */
  • /*****************************************************************************************/
  • /* La fonction hasard(inf, sup) permet de générer des nombres aléatoires entre 2 valeurs */
  • /*****************************************************************************************/
  • int hasard(int inf, int sup)
  • {
  • return inf+(sup-inf)*(double)rand()/(RAND_MAX+1);
  • }
  • /****************************************/
  • /* Fonction d'initialisation du tableau */
  • /****************************************/
  • void InitialiserTableau(int LeTableau[], int NbElem) {
  • int i;
  • printf("*** Liste des %d valeurs non triées ***\n", NbElem);
  • for (i=0; i<=NbElem-1; i++)
  • {
  • /* remplissage des valeurs tirées avec hasard */
  • LeTableau[i]=hasard(VALMIN, VALMAX);
  • /* affichage des valeur tirées et non triées */
  • printf("%4d ", LeTableau[i]);
  • }
  • printf("\n");
  • }
  • /***********************************/
  • /* Fonction d'affichage du tableau */
  • /***********************************/
  • void AfficherTableau(int LeTableau[], int NbElem) {
  • int i;
  • printf("\n*** Liste des %d valeurs triées ***\n", NbElem);
  • for (i=0; i<=NbElem-1; i++)
  • /* affichage des valeur triées a partir de tab */
  • printf("%4d ", LeTableau[i]);
  • }
  • /****************************************/
  • /* Intervertit deux éléments du tableau */
  • /****************************************/
  • void Echange(int LeTableau[], int X, int Y) {
  • int tmp;
  • tmp=LeTableau[X];
  • LeTableau[X]=LeTableau[Y];
  • LeTableau[Y]=tmp;
  • }
  • /******************************************************/
  • /* Intervertit graphiquement deux éléments du tableau */
  • /******************************************************/
  • void EchangeVisuel(int LeTableau[], int X, int Y) {
  • /* On rallenti le programme */
  • Echange(LeTableau,X,Y);
  • }
  • /***************************************/
  • /* Effectue le tri avec l'algo à bulle */
  • /***************************************/
  • void TriBulles(int LeTableau[], int NbElem) {
  • int i,j;
  • for (i=0; i<=NbElem-1; i++)
  • for (j=NbElem-1; j>=i+1; j--)
  • if (LeTableau[j-1]>LeTableau[j])
  • {
  • EchangeVisuel(LeTableau,j,j-1);
  • }
  • }
  • /***********************/
  • /* Fonction principale */
  • /***********************/
  • int main(void)
  • {
  • /* Initialisation des valeurs utilisées */
  • int nb; /* nombre d'éléments a traités */
  • int tab[NMAX]; /* tableau de valeurs à trier */
  • /* Opérations pré-calculatoire */
  • srand(time(NULL)); /* Initialisation du générateur aléatoire avec la fontion time */
  • printf("Nombre de valeurs à trier (entre 1 et %d) : ", NMAX);
  • scanf("%d", &nb); /* Demande le nombre d'éléments à trier */
  • printf("\n");
  • /* Teste si il y a bien les NMAX valeurs, sinon on quitte le programme */
  • if (nb>NMAX)
  • {
  • printf("Erreur.\n");
  • printf("La valeur est supérieur à %d. Recommencer.\n\n", NMAX);
  • return 0;
  • }
  • InitialiserTableau(tab,nb);
  • TriBulles(tab,nb);
  • AfficherTableau(tab, nb);
  • /* C'est la fin du programme */
  • printf("\n\n");
  • return 0;
  • }
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>		/* on utlise la bibliothèque time.h pour la fonction rand */
 
 #define NMAX 50		/* nombre maximum d'éléments */
 #define VALMIN 1		/* valeur mimnimale que peut avoir un élément du tableau */
 #define VALMAX 400		/* valeur maximale que peut avoir un élément du tableau */
 
 
 
 
  /*****************************************************************************************/
 /* La fonction hasard(inf, sup) permet de générer des nombres aléatoires entre 2 valeurs */
/*****************************************************************************************/
 
 int hasard(int inf, int sup)
 {
   return inf+(sup-inf)*(double)rand()/(RAND_MAX+1);
 }


  /****************************************/
 /* Fonction d'initialisation du tableau */
/****************************************/

 void InitialiserTableau(int LeTableau[], int NbElem) {
  
  int i;
  
  printf("*** Liste des %d valeurs non triées ***\n", NbElem);

  for (i=0; i<=NbElem-1; i++)
    {
      /* remplissage des valeurs tirées avec hasard */
      LeTableau[i]=hasard(VALMIN, VALMAX);
      /* affichage des valeur tirées et non triées */
      printf("%4d ", LeTableau[i]);
    }

  printf("\n");
 } 
 

  /***********************************/
 /* Fonction d'affichage du tableau */
/***********************************/
 
 void AfficherTableau(int LeTableau[], int NbElem) {
 
  int i;
 
  printf("\n*** Liste des %d valeurs triées ***\n", NbElem);

  for (i=0; i<=NbElem-1; i++)
  /* affichage des valeur triées a partir de tab */
  printf("%4d ", LeTableau[i]);
 }

 
  /****************************************/
 /* Intervertit deux éléments du tableau */
/****************************************/

 void Echange(int LeTableau[], int X, int Y) {
 
  int tmp;
 
  tmp=LeTableau[X];
  LeTableau[X]=LeTableau[Y];
  LeTableau[Y]=tmp;
 }


  /******************************************************/
 /* Intervertit graphiquement deux éléments du tableau */
/******************************************************/

 void EchangeVisuel(int LeTableau[], int X, int Y) {
  
  /* On rallenti le programme */
  Echange(LeTableau,X,Y);
 }

  
  /***************************************/
 /* Effectue le tri avec l'algo à bulle */
/***************************************/

 void TriBulles(int LeTableau[], int NbElem) {
 
  int i,j;
 
  for (i=0; i<=NbElem-1; i++)
    for (j=NbElem-1; j>=i+1; j--)
      if (LeTableau[j-1]>LeTableau[j])
	{
	  EchangeVisuel(LeTableau,j,j-1);
	}
 }


  /***********************/
 /* Fonction principale */
/***********************/
 
 int main(void)
 {
 
  /* Initialisation des valeurs utilisées */

  int nb;				/* nombre d'éléments a traités */
  int tab[NMAX];			/* tableau de valeurs à trier */


  /* Opérations pré-calculatoire */

  srand(time(NULL));		/* Initialisation du générateur aléatoire avec la fontion time */
  printf("Nombre de valeurs à trier (entre 1 et %d) : ", NMAX);
  scanf("%d", &nb);		/* Demande le nombre d'éléments à trier */
  printf("\n");


  /* Teste si il y a bien les NMAX valeurs, sinon on quitte le programme */
	
  if (nb>NMAX)
    {
      printf("Erreur.\n");
      printf("La valeur est supérieur à %d. Recommencer.\n\n", NMAX);
      return 0;
    }
    

  InitialiserTableau(tab,nb);

  TriBulles(tab,nb);

  AfficherTableau(tab, nb);


  /* C'est la fin du programme */

  printf("\n\n");
  return 0;
  
 }

 Conclusion

by Kortal (coder@kortal.cjb.net)
[ http://kortal.cjb.net ]

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip JEU DES ALUMETTES (2 TAS)
Source avec Zip JEU DES ALUMETTES (1 TAS)
Source avec Zip NOTES DES ETUDIANTS
Source avec Zip CONVERSION DE SECONDES EN JOURS, HEURES, MINUTES, SECONDES
Source avec Zip TRI DE 3 ENTIERS

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de gerard06 le 10/03/2003 15:43:56

Ou se trouve les fichiers : stdlib.h et time.h ?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales