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

Code

 > 

Divers

 > TRI MAXIMIER: EXEMPLE AVEC ALLOC DUNAMIQUE

TRI MAXIMIER: EXEMPLE AVEC ALLOC DUNAMIQUE


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Initié Date de création :13/01/2004 Date de mise à jour :13/01/2004 20:58:06 Vu :3 288

Auteur : morgandetoi06

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

 Description

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

Source

  • #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;
  • }
#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;
}




 Sources du même auteur

CLASSE FILE UTILISANT UN TABLEAU
CLASSE PILE UTILISANT UN TABLEAU
VOIE PARALLELE COUPLEUR MC 68230 IMPRIMANTE SOUS LINUX
CALCUL PUISSANCE PAR FONCTION RECURSIVE
CALCUL FACTORIEL PAR FONCTION RECURSIVE

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Commentaire de djl le 13/01/2004 20:47:04

salut,
en c++ pour allouer c'est new
tableau_a_trier = new long[taille];

Commentaire de djl le 13/01/2004 20:50:20

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); ??

Commentaire de morgandetoi06 le 13/01/2004 20:55:58

je l ai oublié lol
merci de m y avoir fait penser
je met à jour

Commentaire de djl le 13/01/2004 21:12:03

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&lt;&lt;("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

Commentaire de morgandetoi06 le 13/01/2004 21:23:19

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 )

Commentaire de djl le 13/01/2004 21:34:17

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!

 Ajouter un commentaire




Nos sponsors


Sondage...

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

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