Ajouter des entiers dans un tableau a trier dans un ordre croissant

maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010 - 29 sept. 2009 à 21:47
tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 - 30 sept. 2009 à 09:42
Bonjour à tous, je souhaiterais ajouter dans un tableau des entiers.
Le tableau est triés par ordre croissant.
Ainsi pour chaque ajout il me faut trouver la place de l'entier dans le tableau

Voici mon code

public static boolean insertion(int x, int taille, int [] tab){
boolean Bool = true;
for (int i = 0; i < taille; i++){
if (tab[i] == x){
Bool = false;
}
}
if (Bool = true){
for (int i = 0;i<taille-1;i++){
if (tab[i]>x){
int k = tab[i];
for (int j = taille; j>i; j--){
int l = tab[taille - 1];
tab[taille] = l;
}
tab[i+1] = k;
tab[i] = x;
taille = taille + 1;
}
}
}
return Bool;
}


Problème cela ne fonctionne pas :)
Lorsque jaffiche le tableau ds mon main cela me retourne un tableau de 0.
Est ce que quelqu'un peut maider
A voir également:

2 réponses

tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
30 sept. 2009 à 09:42
bonjour,

si tu ne veux pas de l'array :

tout d'abord je suppose que tu voulais dire
if (Bool == true){

décalage :
for (int j = taille; j>i; j--){
int l = tab[j- 1];
tab[j] = l;
}

moi je ferai plutôt
1) trouver l'emplacement (attention à début, milieu et fin de tableau, et sortir de la boucle sitôt tropuvé
2) décalage éventuel
3) enregistrement du nouvel entier

            int k = taille;
            for (int i = 0; i < k; i++)
            {
                if (tab[i] > x)
                    k = i;
            }
            for (int j = taille; j > k; j--)
            {
                int l = tab[j - 1];
                tab[j] = l;
            }
            tab[k] = x;
            taille = taille + 1;


pour finir, je prévoirai une sortie de la première boucle dès que tu positionne Bool à false
1
Utilisateur anonyme
30 sept. 2009 à 06:25
Bonjour,

Il est facile de trier un tableau avec la classe Arrays (java.util.Arrays)

Tu ajoutes les entiers dans tab[] sans te préoccuper de l'ordre, et en fin d'ajout tu tries:

Arrays.sort(tab);

Cordialement,
...\ Dan /...
0
Rejoignez-nous