Un tri étrange et même le tri est un tri plus personnalisé. L'idée de base est d'organiser des séquences impaises dans un ordre, même des séquences dans un ordre, puis des séquences impaises dans une autre, et même des séquences dans un ordre jusqu'à ce que tout soit ordonné.
Donnons un exemple,
Tableau à tri
[6 2 4 1 5 9]
La première fois en comparant une séquence impaire, la séquence impaire est comparée à sa séquence égale des voisins, tels que 6 et 2, 4 et 1, 5 et 9
[6 2 4 1 5 9]
Après l'échange, il devient
[2 6 1 4 5 9]
La deuxième comparaison des nombres pair est de 6 et 1, et 5 et 5
[2 6 1 4 5 9]
Après l'échange, il devient
[2 1 6 4 5 9]
Le troisième voyage est un nombre impair, et les 2, 6 et 5 sont sélectionnés pour comparer respectivement leurs colonnes voisines.
[2 1 6 4 5 9]
Après l'échange
[1 2 4 6 5 9]
La quatrième série même numérotée
[1 2 4 6 5 9]
Un échange
[1 2 4 5 6 9]
Implémentation Java:
static void odvedevensort (int [] ary) {// Trie de parité booléen drapeau = true; while (flag) {boolean odd = false, même = false; for (int i = 0; i <ary.length - 1; i + = 2) {if (ary [i]> ary [i + 1]) {ary [i] = ary [i + 1] + 0 * (ary [i + 1] = ary [i]); Odd = true; }} pour (int i = 1; i <ary.length - 1; i + = 2) {if (ary [i]> ary [i + 1]) {ary [i] = ary [i + 1] + 0 * (ary [i + 1] = ary [i]); même = true; }} Flag = Odd || même; // Si faux, cela signifie que peu importe si la séquence étrange ou même est le cas, il n'y a pas de comparaison qui remplit les conditions}} Le drapeau ci-dessus = Odd || même; a un vrai, indiquant qu'il échange toujours. En fin de compte, le drapeau n'est faux que si tout est faux.
La réécrire sur Flag = Odd && même; S'il y a un faux, la boucle globale ne sera plus terminée. Comme le tri des bulles, il peut réduire la dernière boucle intérieure.