Tri maximier: exemple avec alloc dunamique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 639 fois - Téléchargée 30 fois

Contenu du snippet

voici un exemple du tri Maximier
les tableaux sont créés dynamiquement

Source / Exemple :


#include <iostream>
#include <stdlib.h>
using namespace std;

void TriMaximier(long* tableau_a_trier,long n,long* tableau_trie)
{
 long index_plus_petit,index,index_tableau_trie=0;
 while(n>=1)
 {
  index_plus_petit=0;
  for(index=1;index<=n;index++)
  {
   if(tableau_a_trier[index_plus_petit]>tableau_a_trier[index])
   {
    index_plus_petit=index;
   }
  }
  tableau_trie[index_tableau_trie]=tableau_a_trier[index_plus_petit];
  index_tableau_trie++;
  for(index=index_plus_petit;index<n;index++)
  {
   tableau_a_trier[index]=tableau_a_trier[index+1];
  }
  n--;
  index++;
 }
}

int main(void)
{
 long* tableau_a_trier;
 long* tableau_trie;
 long taille;
 cout<<"Entrez le nombre d'entiers a trier que va contenir le tableau"<<endl;
 cin>>taille;
 tableau_a_trier= (long *)malloc(taille * sizeof(long));
 tableau_trie= (long *)malloc(taille * sizeof(long));
 if((tableau_a_trier==NULL)||(tableau_trie==NULL))
 {
  cout<<("Echec de l'allocation memoire");
 }
 else
 {
  for(long index=0;index<taille;index++)
  {
   cout<<"Entrez l'element de la case "<<index<<" : ";
   cin>>tableau_a_trier[index];
  }
  TriMaximier(tableau_a_trier,taille,tableau_trie);
  cout<<"Voici le tableau trie:"<<endl;
  for(long index=0;index<taille;index++)
  {
   cout<<tableau_trie[index]<<endl;
  }
 }
 free(tableau_a_trier);
 free(tableau_trie);
 system("PAUSE");
 return 0;
}
Ajouter un commentaire Commentaires
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ok, dans quel cas il vaut mieux utiliser methode par rapport a une autre l'autre

et pour ton prof c'est vrai qu'il a raison car comme ca le programme est plus clair(au meme titre que les goto,return,break) mais faut pas se borné a cette regle, dans bien des cas tu n'a pas le choix, et si il t'enleve des points ta qu'a lui dire qu'il devrait enseigner quelque chose qui colle a une norme!
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
1
oué mais mon prof n aime pas justement qu on laisse trainer des exit un peu partout, c ce que j avait fait pour un autre TP et ça m a enlevé des points :-(

quand à calculer le temps mis c n est pas trop but, le but c juste de montrer une des differentes façons de trier un tableau
j en ai deja posté 2 ( tri maximier et tri par selection)
reste :
le tri par bulle,
le tri par insertion
et le tri rapide-tri de hoavre-tri par segmentation-tri des bijoutiers-quick short ( tout ces noms c est le meme tri lol )
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
woa,la sur le coup j'arrive po trop a caculer l'algo(v aller voir sur google)

ya un truc qui serait pas mal(mais je sais pas si c'est le but) ce serai de chronometrer le temps mis pour trier le tableau...

si tu fait ca
if((tableau_a_trier==NULL)||(tableau_trie==NULL))
{
cout<<("Echec de l'allocation memoire");
exit(1);
}
tu pourra te passer du else juste apres et t'aura pas a te faire chier a indenter, c'est la meme chose mais c'est moins chiant
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
1
je l ai oublié lol
merci de m y avoir fait penser
je met à jour
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
j'alais oublié, pour liberer c'est delete
delete[]tableau_a_trier;

et j'ai pas vu ou tu faisait ton free(tableau_a_trier); ??
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.