La clasificación impar e incluso es una clasificación más personalizada. La idea básica es organizar secuencias impares en un orden, incluso secuencias en un orden, luego secuencias impares en otro, e incluso secuencias en un orden hasta que se ordenen todas.
Demos un ejemplo,
Matriz para ser ordenada
[6 2 4 1 5 9]
La primera vez que compara una secuencia impar, la secuencia impar se compara con sus vecinos una secuencia, como 6 y 2, 4 y 1, 5 y 9
[6 2 4 1 5 9]
Después del intercambio se convierte en
[2 6 1 4 5 9]
La segunda comparación de números pares es 6 y 1, y 5 y 5 son
[2 6 1 4 5 9]
Después del intercambio se convierte en
[2 1 6 4 5 9]
El tercer viaje es un número impar, y los 2, 6 y 5 se seleccionan para comparar con sus columnas vecinas respectivamente.
[2 1 6 4 5 9]
Después del intercambio
[1 2 4 6 5 9]
La cuarta serie incluso numerada
[1 2 4 6 5 9]
Un intercambio
[1 2 4 5 6 9]
Implementación de Java:
static void oatevensort (int [] ary) {// parity sort boolean flag = true; while (flag) {boolean impar = false, incluso = false; para (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]); impar = verdadero; }} para (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]); incluso = verdadero; }} bandera = impar || incluso; // Si es falso, significa que no importa si la secuencia impar o incluso es el caso, no hay comparación que cumpla con las condiciones}} La bandera anterior = impar || incluso; tiene una verdadera, lo que indica que todavía está intercambiando. Al final, la bandera es falsa solo si todos son falsos.
Reescribirlo a bandera = impar && incluso; Si hay un falso, el bucle general ya no se completará. Al igual que la clasificación de burbujas, puede reducir el último bucle interno.