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 :

Tri par selection


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Par défaut Tri par selection
    salut tout le monde,

    J'ai essayé de trier un tableau par selection
    J'ai utilisé la classe suivante:

    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
    public class Trie {
    int[] tab=new int[]{2,3,1,0,7};
    int z;
    	public Trie(){
     
    		trierTableau(tab);
    		afficherTableau(tab);
    	}
     
    	void trierTableau(int[] tableau){
    		for(int i=0;i<tableau.length-1;i++)for(int j=i+1;j<tableau.length;j++){
    			if(tableau[i]>tableau[j]){
    				            permutation(tableau[i],tableau[j]);
    			                 }
    	}
    	}
    	void afficherTableau(int[] tableau){
    		for(int i=0;i<tableau.length;i++)System.out.println(tableau[i]);
    	}
     
    	void permutation(int x,int y){
    		z=x;
    		x=y;
    		y=z;
    	}
     
    	public static void main(String[] args) {
    		new Trie();
     
    	}
     
    }
    et ça n'a pas marché

    tandis que avec la deuxième méthode constitué du code suivant:

    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
    public class Trie {
    .............
    	public Trie(){
    		............
    	}
     
    	void trierTableau(int[] tableau){
    		for(int i=0;i<tableau.length-1;i++)for(int j=i+1;j<tableau.length;j++){
    			if(tableau[i]>tableau[j]){
    				            permutation(i,j);
    			                 }
    	}
    	}
    	.........
    	void permutation(int x,int y){
    		z=tab[x];
    		tab[x]=tab[y];
    		tab[y]=z;
    	}
     
    	........
    }
    Donc, quelle est la difference entre ces deux methodes

    Merci d'avence

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    je pense qu'il a un problème avec ta méthode permutation : les variable qui lui sont passé en argument sont copier, tu ne les modifie donc pas !!!!

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 121
    Par défaut
    En Java les paramètres sont passés "par valeures"

    Donc quand tu écris dans le premier exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    permutation(tableau[i],tableau[j]);
    Les valeures correspondantes du tableaux sont recopiées dans les variable locales x et y
    A l'intérieur de la méthode permutation les valeures x et y sont bien échangées via z.

    Mais jamais x n'est recopié vers tableau[ i] ni y vers tableau[j]
    Donc le contenu du tableau reste inchangé.

    Dans le second cas ce sont les indices qui sont passés en paramètres et l'échange se fait bel et bien dans la méthode permutation via ces indices

  4. #4
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Citation Envoyé par rebel64 Voir le message
    En Java les paramètres sont passés "par valeures"
    Ce genre de phrase peut prêter à confusion, car si on passe un objet, on passe bien une valeur, mais cette valeur c'est un pointeur ... Ce qui permet de modifier ce qu'il y a dans l'objet.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Par défaut passage de parametres
    Salut,
    D'aprés vos reponses j'ai constaté que j'ai un probleme avec le passage des parametres

    Merci infiniment.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri par selection
    Par sidelmehdi dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 09/03/2010, 18h14
  2. Tri par selection d'un tableau de 100 entiers
    Par Vryon dans le forum Ada
    Réponses: 5
    Dernier message: 18/10/2009, 18h00
  3. tri par selection recursif
    Par valanscu77 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 06/11/2007, 17h58
  4. tri par selection
    Par houdabouayed dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/01/2007, 14h01

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