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

avec Java Discussion :

Trier nombres en ordres croissant dans un tableau


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Mai 2020
    Messages : 1
    Par défaut Trier nombres en ordres croissant dans un tableau
    Bonjour, le code que j'ai fait, affiche les chiffres 2460135879
    Au lieu d'être en ordre croissant
    Est-ce que quelqu'un voit mon erreur ? , voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public static void main(String[] args) {
     
    int temp;
     
    boolean echange;
    int A[] = {2, 4, 6, 8, 0, 1, 3, 5, 9, 7};
    echange = false;
    do {
     
    for (int i=1;i<=9;i++){
    if (A[i-1] > A[i]) {
     
    temp = A[i-1];
    A[i-1] = A[i];
    A[i] = temp;
    echange = true;
    }
    }
     
    } while (echange == false );
     
    for (int i=0;i<=9;i++){
    System.out.print(A[i]);
    }
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    continuer la boucle tant qu'elle n'opère aucun changement ? C'est... Intéressant comme concept.

    Le truc c'est qu'on voit bien que la première boucle opère un changement (par exemple 8 étant supérieur à 0, ils échangent leurs places), et donc du coup puisque la condition est de ne continuer que tant qu'il n'y a aucun changement, ben, ce changement dit de ne pas continuer, et seule la première boucle s'est faite.

    Ce qui n'est pas suffisant pour trier le tableau entier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé Avatar de Badshade23
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2014
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2014
    Messages : 203
    Par défaut
    Salut,
    Une majuscule comme nom de variable "A[]" ? En java je te conseille de suivre le nommage "Camelcase" sachant qu'une variable ne commence jamais pas une majuscule .
    Sinon pour ce que tu veux faire il existe les streams depuis JAVA 8 qui fait parfaitement le travail pour toi.
    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import java.util.Arrays;
     
    public class Lanceur2 {
     
    	public static void main(String[] args) {
    		int[] tab = { 2, 4, 6, 8, 0, 1, 3, 5, 9, 7 };
     
    		int[] sortedTab = Arrays.stream(tab).sorted().toArray();
    		for (int i = 0;i < sortedTab.length; i++) {
    			System.out.print(sortedTab[i]);
    		}
    	}
    }
    ou encore plus simple :

    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
     
    import java.util.Arrays;
     
    public class Lanceur2 {
     
    	public static void main(String[] args) {
    		int[] tab = { 2, 4, 6, 8, 0, 1, 3, 5, 9, 7 };
     
    		Arrays.sort(tab);
     
    		for (int i = 0; i < tab.length; i++) {
    			System.out.print(tab[i]);
    		}
    	}
    }
    Après a voir si tu veux obligatoirement garder ton code

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, certes, mais, trier un tableau est genre l'exercice d'apprentissage de l'algorithmique le plus connu au monde...

    On peut raisonnablement s'attendre à ce que le but était de le faire soi-même, puis ensuite de chercher à savoir pourquoi le code actuel ne marche pas.
    D'ailleurs je doute fort que le tri à bulle soit la première chose à laquelle pense un débutant. On peut raisonnablement penser qu'il a déjà essayé de programmer d'autres algos de tri, et a réussi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé Avatar de Badshade23
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2014
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2014
    Messages : 203
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Oui, certes, mais, trier un tableau est genre l'exercice d'apprentissage de l'algorithmique le plus connu au monde...

    On peut raisonnablement s'attendre à ce que le but était de le faire soi-même, puis ensuite de chercher à savoir pourquoi le code actuel ne marche pas.
    D'ailleurs je doute fort que le tri à bulle soit la première chose à laquelle pense un débutant. On peut raisonnablement penser qu'il a déjà essayé de programmer d'autres algos de tri, et a réussi.
    Exacte au temps pour moi j'oublie défois que certaine question sont liéer à des cours ^^.

    Comme à dit thelvin, il faut que tu regardes la logique du trie à bulle comme pourrait l'expliquer cette page : https://rmdiscala.developpez.com/cou.../TBchap4.6.htm ou bien d'autre .

    En finalité tu devrais avoir un code similaire à celui-ci :
    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
     
    public static void main(String[] args) {
    		int[] tab = { 2, 4, 6, 8, 0, 1, 3, 5, 9, 7 };
     
    		for (int i = tab.length - 1; i >= 1; i--) {
    			for (int j = 1; j <= i; j++)
    				if (tab[j - 1] > tab[j]) {
    					int temp = tab[j - 1];
    					tab[j - 1] = tab[j];
    					tab[j] = temp;
    				}
    		}
     
    		for (int i = 0; i < tab.length; i++) {
    			System.out.print(tab[i]);
    		}
    	}
    Mais je te conseille de ne pas faire un bête copier coller mais plutôt comprendre comment il fonctionne .

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/01/2011, 10h44
  2. Tri par ordre croissant dans variable tableau
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 27/11/2009, 16h51
  3. [Batch] Trier des nombres ordre croissant dans fichier texte
    Par AZzjeioafh dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 01/11/2009, 10h22
  4. Réponses: 3
    Dernier message: 01/03/2007, 16h26
  5. Réponses: 2
    Dernier message: 30/04/2006, 20h22

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