Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Trie bulle [ Algorithme / Maths ] (afrikanoo)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.