Estructura de datos, un algoritmo común, respuesta a continuación.
Supongamos que se almacenan n números enteros en a[0]~a[n-1]
1) i=0, j=n-1
2 ) Bajo la premisa de no cruzar el límite, encuentro el primer número par a[i] desde el actual hacia atrás
3) Si he cruzado el límite, vaya al paso 8)
4 ) Sin cruzar el límite, j encuentra el primer número impar a[j] desde la posición actual
5) Si j ha cruzado el límite, vaya al paso 8)
6 ) Si ilt; j, entonces intercambie a[i] y a[j], entonces i, j--
7) Si ilt; j, vaya al paso 2)
8) Fin del algoritmo
La complejidad temporal de este algoritmo es O(n), la complejidad espacial es O(n), la unidad de almacenamiento temporal es O(1) y hay tres unidades. : i, j y One para intercambio.