Estoy buscando un algoritmo de una pasada que calcule la paridad de una permutación. Supongo que una permutación de entrada viene dada por la secuencia . La salida debe ser la paridad de la permutación. La pregunta que me interesa es cuánta memoria debe usar un algoritmo determinista. ¿Hay algún algoritmo aleatorio para el problema?
Sé que calcular el número de inversiones en una pasada usa memoria . El límite superior se puede obtener fácilmente con cualquier BST. El límite inferior se presenta aquí: http://citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.112.5622
Por desgracia, la prueba del límite inferior en el documento no puede extenderse al caso de paridad (o no es tan obvio para mí).
También sé que la paridad informática en un espacio pequeño con acceso aleatorio a una permutación se puede hacer en tiempo y memoria mediante algoritmo determinista o en tiempo y memoria O ( log n ) aleatoria. Ver http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256
La idea principal es que la paridad de una permutación se puede calcular mediante la fórmula , donde c es el número de ciclos yn es el tamaño. Los autores realizan el ciclo de descomposición de una permutación. Entonces uno puede calcular fácilmente el número de ciclos.
¿Alguien conoce un algoritmo efectivo o límite inferior en la memoria para calcular la paridad en el modelo de transmisión? Los algoritmos aleatorios mejores que las monedas aleatorias también me interesan.