¿Qué significa O (1) space? Entiendo que O (n) pasos es como el orden de magnitud de los cálculos que realiza un algoritmo/programa, pero no sé cuál es el espacio de O (n).¿Qué significa esto: O (n) pasos y O (1) espacio?
26
A
Respuesta
42
O (1) espacio significa que la memoria requerida por el algoritmo es constante, es decir, no depende del tamaño de la entrada.
O (n) espacio significa que la memoria requerida por el algoritmo tiene (en el peor de los casos) el mismo orden de magnitud que el tamaño de la entrada.
Editar: Adición de dos ejemplos:
- BubbleSort requiere O (1) espacio.
- Mergesort requiere O (n) espacio.
2
Esencialmente "O (n) pasos y O (1) espacio" significa que el número de pasos que realiza el algoritmo escala linealmente (O (n)) con el número de elementos, pero la cantidad de memoria toma es constante.
Cuestiones relacionadas
- 1. ¿Qué significa O (log (log (n)))) - competitivo?
- 2. ¿Qué significa "O (1) access time"?
- 3. lo hace O (N) significa
- 4. java.lang.Object o = 1; // ¿por qué compila esto?
- 5. ¿Podemos calcular esto en menos de O (n * n) ... (nlogn o n)
- 6. Diferencia entre O (n) y O (log (n)) - ¿cuál es mejor y qué es exactamente O (log (n))?
- 7. número hallazgo que no se repite en O (n) tiempo O (1) Espacio
- 8. ¿Debería considerar memmove() O (n) u O (1)?
- 9. ¿Qué significa 1. # INF00, -1. # IND00 y -1. # IND significa?
- 10. ¿Cambia el bit O (1) u O (n)?
- 11. ¿Qué significa esto?
- 12. Haskell: Datastruture con O (1) anexión y O (1) indización?
- 13. ¿Por qué se pasa del planificador O (1) al CFS que es O (log N)?
- 14. ¿qué significa 2n + 1 quórum?
- 15. ¿Qué es O (log * N)?
- 16. ¿Qué significa 0LL o 0x0UL?
- 17. ¿Cuál es la prueba de (N-1) + (N-2) + (N-3) + ... + 1 = N * (N-1)/2
- 18. ¿Es string.ElementAt() O (1)?
- 19. ¿Qué significa esto y cómo lo ayuda?
- 20. ¿Qué significa esto salir (main())
- 21. Ruby: ¿Qué significa $ 1?
- 22. ¿Qué significa _ITERATOR_DEBUG_LEVEL = 1?
- 23. ¿Qué significa esto? (int &) a
- 24. ¿Qué significa! 1 y! 0 en Javascript?
- 25. ¿qué significa esto: "jQuery ('> li', esto)"
- 26. ¿Qué significa espacio en scanf?
- 27. n & (n-1) ¿Qué hace esta expresión?
- 28. ¿Qué significa varchar (-1)?
- 29. ¿Qué significa BUNDLE_DISABLE_SHARED_GEMS: '1'?
- 30. ¿Qué significa "escalares filtrados: 1" significa?
entonces, básicamente, una llamada recursiva normalmente sería el espacio O (n) y un proceso iterativo sería O (1) ya que no está esperando que finalice una llamada recursiva (s)? – Devoted
Se agregaron dos ejemplos comunes. Bueno, en realidad no se pueden encontrar reglas generales sobre complejidades de algoritmos recursivos vs iterativos (pero probablemente sea difícil, si no imposible, que un algoritmo recursivo tenga O (1) complejidad de espacio). – 3lectrologos
si su llamada recursiva usó nuevas variables cada vez que se llamó, entonces sí sería O (n) espacio. Si su proceso iterativo instanciara nuevas variables en un bucle sin soltarlas, también lo haría O (n). Todo depende de cómo diseñe y codifique el algoritmo. – Nikhil