IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

trier des variable en C++


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut trier des variable en C++
    Bonjour tout le monde ;
    je suis un débutant en c++ et je veut faire un programme qui a pour objectif de trier trois nombre rèels dont on les saisir par clavier.
    j'ai déclaré un tableau on peut le remplir par le clavier, voila le petit code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include<iostream>
    // programme : trie croissant .
    using namespace std ;
    int main(){
        float a,b,c ;
        int longeur =3;
        for(int i=0 ; i < longeur ; i++){
                  float tab[i];
              cout << "donner la valeur N° = "<< i <<endl ; 
              cin >> tab[i];                
    //traitement : trier les valeur entrer de plut petit vers le plus grand (croissant)
    //....
        } 
        system("pause");   
    }
    merci de me donner une idée

  2. #2
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Bonjour!

    La question du tri est vaste, mais on va essayer de voir ce qu'on peut faire

    Une approche bête et méchante serait de parcourir le tableau pour en chercher le minimum, le mettre dans un second tableau, ensuite de chercher le nouveau minimum et ainsi de suite (ou encore d'utiliser une variable tampon).

    Problème, c'est très long, ça utilise beaucoup de mémoire (essaye de te projeter pour un très grand nombre de variables à trier!)

    Une bonne idée serait de les comparer deux à deux et de les switcher (trie à bulle): tu compares le premier au deuxième, si le premier est plus grand que le deuxième, tu les inverses, ensuite tu compares le deuxième au troisème et tu recommence tant que tu fait des inversions.

    Cette méthode fonctionne mais est très lente (imagine dans le pire des cas le nombre de comparaisons à effectuer ! )

    Il existe de nombreux autres algorithme de trie. Je te conseille d'aller lire quelques articles sur le sujet

    http://fr.wikipedia.org/wiki/Algorithme_de_tri

    (le tri à bulle est un exemple pour illustrer une mauvaise pratique (même soi pour 3 éléments c'est discutable), pas un conseil!)

  3. #3
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut
    exactement , si on veut faire un tableau de très grande longeur : le tri devera plus déficile et le programme devera lent.
    c'est pour cela j'ai déclaré la variable longeur et la initialisée à 3 pour faire un tri de 3 variable seulement.
    je vais débuter avec cet exemple et après je vais penser au plus .

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    Pense-tu que la déclaration de ton tableau tab est appropriée et bien située ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Etant donné le contexte, je pencherais plutôt pour le tri à bulle.
    Cette technique est un très bon exercice de formation, et il sera toujours temps d'utiliser le quicksort plus tard.
    Ne pas oublier le cas où 2 valeurs sont égales.

  6. #6
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Bonjour,
    Etant donné le contexte, je pencherais plutôt pour le tri à bulle.
    Cette technique est un très bon exercice de formation, et il sera toujours temps d'utiliser le quicksort plus tard.
    Ne pas oublier le cas où 2 valeurs sont égales.
    A part pour montrer que c'est un mauvais algorithme, le tri à bulle ne sert à rien..

    Comme l'a dit l'OP, il compte augmenter la capacitée du tableau.

    alfred5 en fait, ça dépend: tu utilises ce morceau de code dans quelque chose de plus gros ou c'ets juste pour te faire la main sur les algos de tri?

Discussions similaires

  1. Trier des fichiers à partir d'une variable File[]
    Par spaukensen dans le forum Général Java
    Réponses: 4
    Dernier message: 27/09/2010, 16h43
  2. Réponses: 4
    Dernier message: 15/12/2002, 04h19
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44
  4. [VB6] [Fichier] Enregistrer des variables de structure
    Par de.bo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2002, 11h09
  5. Réponses: 4
    Dernier message: 18/07/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo