begin process at 2010 02 10 08:45:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Trie bulle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trie bulle

mercredi 12 septembre 2007 à 17:09:58 | Trie bulle

afrikanoo

#include <stdio.h>
#include <conio.h>

void main()
{
 clrscr();
 int n;
/*Le nombre d'elements*/
 int t[20]; /*Tableau de 20 cases*/
 int aux; /*Variable temporaire*/
 int test; /* "0" si le tableau n'est pas trier, "1" sinon*/
 int i; /*variable de parcour du tableau*/
 int x; /*Variable compte le nombre d'execution du traitement*/
 
 /*LECTURE DE LA TAILLE AVEC CONTROL DE SAISIE*/
 do
 {
  printf("Saisir la taille du tableau entre 2 et 20: ");
  scanf("%d",&n);
 }while(n<2 || n>20);
 
 /*REMPLISSAGE TU TABLEAU*/
 for (i=0;i<n;i++)
 {
  printf("T[%d]= ",i);
  scanf("%d",&t[i]);
 }
 printf("\n");
 
/*AFFICHAGE DU TABLEAU AVANT LE TRI*/
 for (i=0;i<n;i++)
 {
  printf("%d ",t[i]);
 }

 /*TRI DU TABLEAU*/         c'est ici le problem
 test=0;
 for (i=0;(i<n-1) && (!test);i++)
 {
  test=1;
  while (t[i]>t[i+1])
  {
   aux=t[i];
   t[i]=t[i+1];
   t[i+1]=aux;
   test=0;
  }
 }

 printf("\n");
 /*AFFICHAGE DU TABLEAU APRES LE TRI*/
 for (i=0;i<n;i++)
 {
  printf("%d ",t[i]);
 }
 getch();
}

mercredi 12 septembre 2007 à 23:21:40 | Re : Trie bulle

rrk275

Juste un code pas de question ?

Oua tu as un manifique algo de tri en O(n) dommage qu'il ne puisse pas marcher
un tri bulle ca ressemble a ca :

Tant qu'on fait des modifications
 |  Pour chaque element
 |  | Si plus grand que le suivant
 |  |   | echanger
 |  |  +
 | +
 +

Soit :

int test = 1 ;
do
{
  test = 0 ;
  for( int id = 0 ; id < n - 1 ; id++ )
    if( t[id] < t[id+1] )
     {
         aux = t[id] ;
         t[id] = t[id+1] ;
         t[id+1] = aux ;
         test = 1 ;
     }
}
while( test ) ;

Louis
vendredi 14 septembre 2007 à 22:24:10 | Re : Trie bulle

yann_lo_san

Pourquoi faire 2 boucles imbriqués ?


int pos = 0;
int dernier = n-1;
int aux;

while( pos < dernier )
{
     if( T[pos] > T[pos+1] )
     {
         aux  = T[pos+1];
         T[pos+1] = T[pos];
         T[pos] = aux;
         pos = -1;
     }
     pos++;
}

samedi 15 septembre 2007 à 00:29:20 | Re : Trie bulle

rrk275

Pourquoi deux boucles imbriquées??

parce que mon algo est en N^2 le tien en N^3 .. c'est vrai que pour des valeurs < 20 on s'en fout ( quoique .. ) mais des que l'on a genre 1000 ton algo met 0.36 secondes .. bien trop ( le mien met moins de 0.01 )

rrk275


Cette discussion est classée dans : int, test, tableau, printf, for


Répondre à ce message

Sujets en rapport avec ce message

Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le Blem Somme ELmt d'un Tableau Bidimensionnel [ par Orezza ] Slt c encore moi, le boulet de l'info...c tjrs le meme prog mais cette fois ci j'aimerais afficher la somme des elmts de mon tableaux.#include #includ Création de 2 tableaux dynamik à 2D [ par flopflopp ] Bonjour, je voudrais soumettre un petit problème en C++, j'ai une simple fonction qui crée un tableau dynamique à 2 dimensions, le rempli avec des 1 e C ANSI allocation dynamique de tableau [ par pedu ] Ce petit pro beug en sortie, pourquoi et que faire ?#include #include int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */void main(void){ unsi Retourner tableau 2d [ par ZogStriP ] J'ai une fonction qui retoure un tableau 2 dimension mais ça ne marche pas :int MultiMatrice(int Matrice1[2][2], int Matrice2[2][2]){ int MatriceRe Problème avec for [ par Scientophage ] J'ai un gros problème avec l'instruction for quand je tapeint test[5];for (int a=0; a==4; a++){ test[a]=a; coutCa ne m'affiche rien et en plus affichage de caractere dans une grille [ par anzelus ] bonjour, voila, je suis un debutant en c, je dois faire un programme qui affiche une grille de points sur console, apres afficher un caractere special pb en c urgenttttttttttttttttt [ par natacha86 ] bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as help une fonction qui a besoin de vous [ par natacha86 ] Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell tableau [ par imanedaoudi ] Salut,Je veux récuperer le tableaux triée sans faire return, avec ce programme je recupere le tableau non trier ,comment faire pour recuperer le tab t


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,390 sec (4)

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