Ajouter des entiers dans un tableau a trier dans un ordre croissant
maxxou56
Messages postés53Date d'inscriptionjeudi 28 février 2008StatutMembreDernière intervention15 février 2010
-
29 sept. 2009 à 21:47
tpoinsot
Messages postés345Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention17 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:
Ajouter un element dans un tableau java
Java ajouter element tableau - Meilleures réponses
Ajouter element tableau java - Meilleures réponses
tpoinsot
Messages postés345Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention17 octobre 20144 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