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 :

Exercice sur tableau trié dynamique


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut Exercice sur tableau trié dynamique
    Bonjour ,

    Je suis entrain de faire un exercice qui me semblait pas si difficile que cela , et après des heures je ne parviens toujours pas à une solution ,
    le but est de trier un tableau dés qu'on ajoute un élément , on décale le reste et on insère le chiffre ou sinon on ajoute à la fin.

    voici ce que j'ai fais
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    public class table {
     
       public static void main(String[] args) {
     
            int tableau[]=new int[7];
    		int tabclient[]={10,13,10,11,21,24,11,13,18};
    		int i,j,k,dim;
    		boolean verif;
     
    		k=0;
     
    		for(i=0; i<9; i++) {
     
    			verif=false;
     
    			for(j=0; j<=k && verif !=true; j++) {
     
    				if(tabclient[i] != tableau[j]) {
     
    					if(tabclient[i] < tableau[j]){
     
    						dim=k+1;
     
    						while(dim>k) {
     
    							tableau[dim]=tableau[dim-1];
    							dim--;
     
    						}
     
    						tableau[j]=tabclient[i];
    						k++;
    						verif=true;
     
    					}
     
    				}
    				  /*pour après*/
                                      if(tabclient[i]==tableau[j]) {
     
     
    					verif=true;
    				}
    			}
     
    			if(verif!=true) {
     
    				k++;
    				tableau[k]=tabclient[i];
     
    			}
     
    		}
     
    		for(i=0; i<7; i++)
    		         System.out.print(tableau[i] + " ");
     
     
           }
     
    }
    Voilà ce qu'il m'affiche 0 10 11 13 18 24 24 plutôt que 10 11 13 18 21 24
    Merci pour tout aide.

  2. #2
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Ton code n'est pas évident à lire... donc je ne l'ai pas lu.
    Si tu veux le bon resultat utiliser un java.util.TreeSet<Integer> ça fera tout le boulot ;-) ça serait le réponse d'un programmeur java. Après si l'exercice c'est de faire des algo... c autre chose.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Par défaut
    Hello,

    Ta solution me parait bien complexe, s'agit il d'un problème d'algo ou de JAVA ?
    Si il s'agit de JAVA, comme dit précédemment, java.util.TreeSet<Integer> fera tout le boulot

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    ça ne serait pas un "tri par insertion" ton truc?
    Si oui regarde ici
    Pourquoi utiliser 2 tableaux? Es ce une contrainte?

    Et le zéro au début c'est normal, tu entre 6 valeurs dans un tableau de 7 cases... normal qu'il y est une case "vide" (à zéro)

  5. #5
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Je ne connais pas java.util.TreeSet<Integer> , je suis assez nouveau dans le monde du Java mais je vais y jeter un coup d'oeil.

    Ce n'est pas un tri normal , je connais le tri par insertion ici le but n'est pas de trier un tableau mais bien de recopier une valeur dans un autre tableau en triant le tableau si cette valeur est plus petite à l'ajout d'une nouvelle et sans recopier les doublons.
    Il s'agit d'un entraînement algorithmique.
    j'essaie de trouver le meilleur moyen de faire sans parcourir le tableau plusieurs fois , sinon ça aurait été trop facile.
    Et le zéro au début c'est normal, tu entre 6 valeurs dans un tableau de 7 cases... normal qu'il y est une case "vide" (à zéro)
    En effet je l'ai remarqué c'était pour entrer dans la boucle.

  6. #6
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2011
    Messages : 214
    Par défaut
    Bonjour,

    Pour la partie "recherche de la position où insérer la nouvelle valeur dans le tableau déjà trié" il y a la méthode Arrays.binarySearch(int[], int) qui permet de faire ça par recherche dichotomique. Si tu ne veux pas l'utiliser tu peux toujours t'inspirer de l’implémentation de ton JDK...

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

Discussions similaires

  1. ASP/VB.NET question sur tableau créé dynamiquement
    Par julygou dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/08/2008, 10h05
  2. Réponses: 4
    Dernier message: 09/06/2008, 19h54
  3. Exercice sur le tri d'un tableau
    Par momo1367 dans le forum Pascal
    Réponses: 1
    Dernier message: 16/04/2008, 19h28
  4. Pb de chemin en VBA excel sur tableau croisé dynamique
    Par hiline6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2007, 14h23
  5. problème sur tableau croiée dynamique
    Par flo64 dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 11h23

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