Es simplemente que algunos problemas pueden resolverse de diferentes maneras, a veces tomando menos tiempo, pero otros tomando más tiempo, pero menos espacio de almacenamiento.
Tomemos un ejemplo simple del mundo real: ordenar un mazo de cartas en orden.
Si estaba físicamente encajado en un espacio muy pequeño, sin forma de colocar las cartas, puede intentar sacar una carta de la parte superior del mazo y moverla aproximadamente al lugar correcto en la pila, luego pasar por la fijación del mazo errores, una y otra vez hasta que todo estaba en el orden correcto. Llevaría mucho tiempo, pero si estuviera en un espacio reducido, funcionaría.
- Tengo 23 años. ¿Es demasiado tarde para estudiar la introducción a algoritmos por CLRS?
- ¿Cuál es la complejidad del algoritmo criptográfico RSA?
- ¿Qué algoritmo es mejor de prims y kruskal y por qué?
- Cómo elegir métricas de error para el algoritmo de aprendizaje automático
- ¿Es seguro decir que las recomendaciones sociales siempre superarán a los algoritmos controlados por computadora?
Por otro lado, si tuviera una buena mesa grande para trabajar, podría tratar de distribuir todas las cartas, luego simplemente recogerlas en el orden correcto. MUCHO más rápido, pero necesita una gran cantidad de espacio.
Los algoritmos informáticos (¡incluidos los de ordenar las tarjetas en orden!) Tienen “compensaciones” similares.
Puede terminar fácilmente con dos algoritmos, uno más rápido que el otro, pero también necesita más memoria … en ese caso, no hay un algoritmo “Mejor”; todo depende de su contexto. En una pequeña “computadora integrada” con poca memoria que solo tiene que resolver el problema una vez, tal vez no le importe si le toma medio segundo hacer el trabajo. Pero en un videojuego que tiene que hacer absolutamente todo 60 veces por segundo, y su algoritmo no puede usar más del 1% del tiempo disponible, entonces tal vez no le importe perder algo de memoria si hace el trabajo. en la 1/6,000 de segundo tienes que hacerlo.