La vérification d'un tableau par ordre décroissant
Je suis en train d'écrire du code pour vérifier si mon tableau est dans l'ordre croissant ou décroissant. Si le booléen "ascendante" est vrai, alors j'ai vérifier si il est croissant. Si elle est fausse, puis-je vérifier pour la descente. J'ai besoin d'aide pour vérifier si le tableau est en descente ou pas... j'ai le code pour vérifier ascendant qui est écrit ci-dessous:
protected boolean isSorted(boolean ascending) {
boolean result = false;
if (ascending) {
for (int i=0;i<data.length-1;i++) {
if(data[i] < data[i+1]) {
result = true;
} else if(data[i] > data[i+1]) {
result = false;
}
}
} else {
//code to check for descending order
}
}
OriginalL'auteur dmetal23 | 2013-08-01
Vous devez vous connecter pour publier un commentaire.
La première partie de la
if
(le "croissant") est faux, il doit être:À l'inverse, la descente de la vérification doit être (et remarquez qu'il suffit de changer la direction de l'opérateur de comparaison):
Dans les deux cas, vous devez sortir de la boucle dès que vous trouvez un unique paire de nombres qui ne détiennent pas l'ordre croissant ou décroissant de la propriété, et ne reviennent
true
après la boucle.sur la deuxième pensée: non, c'est correct comme il est. vérifiez votre index.
désolé, oui c'est ça a l'air sympa. Pensé que vous aviez i <= données.longueur-1
Merci beaucoup!
OriginalL'auteur Óscar López
Vous pouvez tricher et de le faire dans une boucle si vous aimez et retirer un ajout:
NOTE: je suis de construction sur le code de @OscarLopez donc upvote son si vous upvote mine.
if (data[i-1] == data[i])
condition est inutile, et vous pouvez la retirerQue
==
partie s'applique lors de sa descente. Si elles sont égales, la>
seraitfalse
qui est== false
et la fonction retourne false, sans que part.La droite! J'avais upvote vous deux fois si je le pouvais 🙂
OriginalL'auteur Lee Meador
Pour vérifier si
ArrayList<Integer>
est dans l'ordre décroissant, essayez ceci:OriginalL'auteur Amit Dhawan