Tableau trié en java
Résolu
grosprobleme23
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
voila je suis débutant en programmation java et on me demande de verifié si un tableau est trié. En regardant la correction il y a un element que je ne comprend pas :
static boolean estTrie(int[] t){
for(int i=0; i<t.length-1; i++){
if(t[i]<t[i+1])
return true;
}
else
return false;
}
ce que je ne comprend pas c'est la boucle for, pourquoi avons nous mis t.length-1 et pas t.length??
Merci de m'aider !
voila je suis débutant en programmation java et on me demande de verifié si un tableau est trié. En regardant la correction il y a un element que je ne comprend pas :
static boolean estTrie(int[] t){
for(int i=0; i<t.length-1; i++){
if(t[i]<t[i+1])
return true;
}
else
return false;
}
ce que je ne comprend pas c'est la boucle for, pourquoi avons nous mis t.length-1 et pas t.length??
Merci de m'aider !
A voir également:
- Trier un tableau java avec une boucle
- Trier un tableau excel - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Tableau word - Guide
- Tableau ascii - Guide
2 réponses
Bonjour,
Par contre, en dehors de ce -1 très bien expliqué par Le Père, ton programme ne peut pas marcher !
Il ne faut pas mettre "return" à l'intérieur de la boucle, sinon il s'arrêtera au premier élément qui est inférieur au suivant. Du coup, le tableau [0, 1, 9, 8] sera marqué comme trié, ce qui est faux.
Plus gênant encore, ce code ne compile même pas ! Il y a des soucis avec les accolades, et le "else" qui est en-dehors de la boucle FOR alors qu'il renvoie au IF...
Xavier
Par contre, en dehors de ce -1 très bien expliqué par Le Père, ton programme ne peut pas marcher !
Il ne faut pas mettre "return" à l'intérieur de la boucle, sinon il s'arrêtera au premier élément qui est inférieur au suivant. Du coup, le tableau [0, 1, 9, 8] sera marqué comme trié, ce qui est faux.
Plus gênant encore, ce code ne compile même pas ! Il y a des soucis avec les accolades, et le "else" qui est en-dehors de la boucle FOR alors qu'il renvoie au IF...
Xavier
Ça ce n'est pas très gênant, il manque les deux dernières accolades fermantes, la classe qui englobe, le main, etc. Mais le plus important est là. Je préfère un code qui va à l'essentiel plutôt que s'embêter avec des lignes inutiles que l'on devine de toute façon.
"Il ne faut pas mettre "return" à l'intérieur de la boucle, sinon il s'arrêtera au premier élément qui est inférieur au suivant."
Je suis (presque) d'accord avec toi, cependant je garderai quand même un des deux return, pour renvoyer false dès qu'on a détecté un élément plus grand que son successeur. Du coup il faudrait même carrément changer le test sur le if, parce que là on teste si le tableau est décroissant, alors certes c'est un tri, mais implicitement on s'attend à ce que ce soit un tri en ordre croissant.
Enfin, il faudrait traiter le cas où t==null, quitte à renvoyer soit même une exception, mais c'est mieux qu'attendre que le t.length provoque lui même un NullPointerException.