Estoy buscando una estructura de datos funcional que represente biyecciones finitas entre dos tipos, que sea eficiente en cuanto a espacio y tiempo.estructura de datos funcional eficiente para biyecciones finitas
Por ejemplo, estaría feliz si, teniendo en cuenta una biyección f de tamaño n:
- extiende f con un nuevo par de elementos tiene complejidad O (ln n)
- consulta de f (x) o f^-1 (x) tiene complejidad o (ln n)
- la representación interna de f es más espacio eficiente que tener 2 mapas finitos (que representa f y su inversa)
soy consciente de representación eficiente de la permutación s, como this paper, pero no parece resolver mi problema.
Tener dos mapas finitos es bastante eficiente en el uso del espacio ... es O (n) espacio. No puedo imaginar que puedas hacerlo mejor que eso. –
Comience con dos mapas finitos y preocúpese por algo más inteligente cuando se quede sin memoria. Los Hashmaps son buenos, si puedes hash los dos tipos. – augustss
Parece que si su función es estrictamente monótona, puede buscar en el mismo árbol tanto para la función como para la inversa. Es una posibilidad remota, supongo. –