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

Collection et Stream Java Discussion :

trier un tableau 2D


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut trier un tableau 2D
    bonjours,

    voila je voudrais trier un tableau 2D de bytes:

    2 120 3 5
    2 12 5 10
    1 0 150 2
    5 10 5 0

    ce qui donne apres le tri

    1 0 150 2
    2 12 5 10
    2 120 3 5
    5 10 5 0

    Mais je n'arrive pa a implementer l'algo...
    si vs avez une idée

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Si chaque ligne est effectivement une chaîne de caractères, tu n'as (quasiment) rien à faire pour les trier, et surtout pas d'algorithme à implémenter: java va faire le travail pour toi.

    La classe String implémente "Comparable" et l'ordre par défaut est l'ordre lexicographique. Pour le tri, la méthode est dans la FAQ.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    non c'est un tableau de bytes, j'ai corrigé mon post.

    C'est juste qu'il faut trier ce tableau ligne par ligne.

    Merci

  4. #4
    Membre confirmé Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Par défaut
    romainromain ecrit
    voila je voudrais trier un tableau 2D de bytes:

    2 120 3 5
    2 12 5 10
    1 0 150 2
    5 10 5 0

    ce qui donne apres le tri
    1 0 150 2
    2 12 5 10
    2 120 3 5
    5 10 5 0
    si je comprends on trie les lignes par rapport a leur premier element
    alors tu trie la premiere conlonne en faisant chaque fois la permutation de toute la ligne

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    Merci mais non si le premier element est le meme on tri suivant le second et ainsi de suite mais je crois avoir résolu le probleme:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     public void inverser(byte tab[][],int ligne,int nbLus){
     
            byte tmp;
     
            for(int i=0;i<nbLus;i++){
     
                tmp=tab[ligne][i];
                tab[ligne][i]=tab[ligne+1][i];
                tab[ligne+1][i]=tmp;
            }
     
            if(ligne==num)
                num++;
        }
     
        public void trier(byte tab[][],int nbLus){
     
            boolean encore,equal;
            int col;
     
            do{
                encore=false;
     
                for(int i=0;i<nbLus-1;i++){
     
                    equal=false;
                    col=0;
     
                    do{
     
                        equal=false;
     
                        if(tab[i][col]>tab[i+1][col]){
     
                            inverser(tab,i,nbLus);
                            encore=true;
                        }
                        else{
     
                            if(tab[i][col]==tab[i+1][col] && col<nbLus-1){
     
                                col++;
                                equal=true;
                            }
                        }
                    }while(equal);
                }
            }while(encore);
        }
    Seul probleme c'est pas du tout optimisé a mon avis....Merci

  6. #6
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Par défaut
    Bonjour,
    Effectivement tu peux utiliser un tri plus rapide:
    Collections.sort te permet de trier n'importe quel objet à l'aide d'un Comparator.
    ici ton objet est une linge constitée d'un tableau de byte
    un problème similaire est évoqué ici:
    http://www.developpez.net/forums/sho....php?p=2674602

Discussions similaires

  1. [Débutant] Trier un tableau en 2 boucles
    Par SaladinDev dans le forum Assembleur
    Réponses: 9
    Dernier message: 07/05/2005, 22h38
  2. Trier un tableau par rapport à un autre tableau
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/05/2005, 09h27
  3. [Débutant] Remplir et trier un tableau
    Par james-dean dans le forum Assembleur
    Réponses: 15
    Dernier message: 01/05/2005, 17h40
  4. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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