¿Cómo funciona el algoritmo inverso?

Si por algoritmo inverso te refieres a un algoritmo que invierte una lista como [0,1,2,3] -> [3,2,1,0], entonces puedo responder a tu pregunta.

Hay muchas implementaciones diferentes de un algoritmo inverso. Aquí hay algunos ejemplos en Python:

# Una recursión muy simple
def invertido (lista):
si el tamaño (lista) == 1:
lista de retorno
head = list.pop (0)
volver atrás (lista) + [cabeza]
# Entonces, ¿cómo maneja eso la entrada [1,2,3]
#reverse se llama con [1,2,3]
#que devuelve inversa ([2,3]) + [1]
#reverse ([2,3]) devuelve reverse ([3]) + [2]
#reverse ([3]) devuelve [3]
# Así que póngalo junto [3] + [2] + [1]
# invertido!

O de otra manera:

def reverse (lista):
tamaño = tamaño (lista)
para i en rango (0, tamaño / 2):
indexToSwapWith = size – i
temp = lista [i]
lista [i] = lista [indexToSwapWith]
list [indexToSwapWith] = temp
# así que veamos cómo funciona
#nuestra lista de inicio: [0,1,2,3,4,5]
#i va de 0 a 2
#so indexToSwapWith va de 5 a 3
#so intercambiemos
# 0 con 5 -> [5,1,2,3,4,0]
# 1 con 4 -> [5,4,2,3,1,0]
# y finalmente 2 con 3 -> [5,4,3,2,1,0]
# invertido!

Hay muchos más algoritmos inversos, pero esos fueron algunos ejemplos. Espero que lo hayas entendido.

More Interesting

¿Cuáles son los mejores temas de investigación recomendados en bases de datos según las tecnologías de punta y las tendencias de investigación recientes?

¿Puede el aprendizaje automático causar un sesgo de decisión en el futuro?

Si tuviera un algoritmo muy rápido y distribuido para resolver el problema 3-SAT, ¿cuáles son los mercados relevantes para este algoritmo? ¿Para qué industrias sería relevante?

¿El gráfico de conocimiento de Google está completamente automatizado? ¿Cómo se rectifican los errores?

¿Cuál es la diferencia entre la complejidad de Kolmogorov con y sin la longitud de cadena dada?

¿Cuál es la diferencia entre 'progreso' y 'espera limitada', que son los dos requisitos para manejar el problema de la sección crítica en un sistema operativo?

Informática teórica: estadísticamente, ¿Harvard es el lugar más difícil para convertirse en estudiante de doctorado para estudiante de teoría de CS?

¿Hay alguna startup en Medan, la capital del norte de Sumatra?

¿Cuál es la diferencia entre las arquitecturas i386 y x86?

¿Cuáles son las diferencias entre subprocesos y subprocesos múltiples?

¿Qué tan difícil es crear una aplicación como Snapchat?

¿Cuáles son los 10 mejores libros que todo informático debería leer?

Cómo generar todos los números primos de un número dentro de un rango

¿Cuáles son algunas ideas para un hackathon relacionado con la banca?

¿Puede una computadora resolver sudoku sin simplemente sustituir números y verificar?