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 :

Mélanger un tableau


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1
    Par défaut Mélanger un tableau
    Bonjour,
    Je souhaite mélanger des nombres dans un tableau donné. Par exemple : [1,2,3,4,5,6] que ça me donne aléatoirement quelque chose comme [6,1,3,4,2,5]. Ensuite je voudrais prendre les nombres paires et les mettre dans un autre tableau, ainsi que les nombres impaires dans un troisième tableau.
    Merci d'avance de votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pour la mise en désordre, abuse de la fonction de tri (sort) :p


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Arrays.sort(tableau,new Comparator<type>(){
     Random r = new Random();
     public int compare(type o1, type o2){
          return r.nextInt();
     }
    });
    avec type le type de ton tableau


    Pour séparer en deux tableau -> Faut y aller à la main ^^

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    C'est pas risqué cà?

    Y'a pas de risque que le tri s'éternise ou ne soit pas si aléatoire que ça étant donné que des règles de base de l'arithmétique sont violées?
    Par exemple on peut avoir a<b et b<c mais a>c

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    un petit n'irait pas ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    @wax78: oui, et ce serait idéal

    @uther: non, car l'algorithme est un merge sort, ca signifie qu'à chaque récursion il va séparer son set d'élément en deux sous éléments, donc va avancer. Mais de fait, c'est de l'abusage pour le fun ^^

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    La spec garantit que l'on fait un merge sort?
    Sinon, ca pourrait être faut suivant l'implémentation de la JVM.

    edit après vérification dans la javadoc:
    For example, the algorithm used by sort(Object[]) does not have to be a mergesort, but it does have to be stable.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    j'ai ca dans les specs, mais bon, de toutes facons on est d'accord, c'est pas la meilleure solution:

    The sorting algorithm is a modified mergesort (in which the merge is omitted if the highest element in the low sublist is less than the lowest element in the high sublist). This algorithm offers guaranteed n*log(n) performance.
    Et puis, ca ne peut que finir, pour ne pas finir, il faudrait que le random aille constament à l'inverse de l'avancement de l'algo, ce qui est improbable

Discussions similaires

  1. Mélanger un tableau de type vector
    Par who_knows dans le forum Langage
    Réponses: 3
    Dernier message: 25/11/2010, 12h14
  2. Mélanger un tableau, avec exceptions
    Par Niki59 dans le forum Langage
    Réponses: 6
    Dernier message: 20/09/2010, 20h56
  3. Mélanger un tableau
    Par rambc dans le forum Général Python
    Réponses: 11
    Dernier message: 29/04/2009, 08h29
  4. Mélanger un tableau et prendre juste 2 éléments
    Par MaitrePylos dans le forum Ruby
    Réponses: 9
    Dernier message: 23/03/2007, 09h31
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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