Depende del compilador. Un buen compilador puede convertir algunos cálculos de bucle en el equivalente de una sola declaración. Un compilador podría optimizar el primero pero no el segundo. Por lo tanto, uno no puede responder esto con autoridad en abstracto.
Un compilador no optimizador usaría O (n ^ 2) para el segundo y O (n) para el primero.
Actualización: me perdí por completo el “i * = 2”, que cambia la imagen. Entre otras cosas, un compilador optimizador lo verá como un cambio de bit potencial, como en “i << = 1". Cambia el O (..) según las otras respuestas, pero aún así debe ser optimizable simplemente como un incremento. En cualquier caso, incluso si no se optimiza, el recuento de bucles no excederá el tamaño de palabra del compilador de C (32 o 64 bits, muy probablemente). Con un recuento máximo tan pequeño y con un cuerpo de bucle económico, la diferencia O (…) no tiene sentido en realidad. Por último, si n * n se desborda, todas las apuestas están desactivadas.
- En este algoritmo de clasificación de radix, ¿qué representa cada variable? (Java)
- ¿Cuál es el mejor algoritmo de aprendizaje profundo sin supervisión para aprender características de los datos de secuencia biológica?
- No puedo entender algoritmos y estructuras de datos. ¿Cómo puedo aprender algoritmos y estructuras de datos de una manera simple?
- ¿Por qué no ha habido un codificador indio en la región 2400+ después de Rudradev Basak, especialmente cuando la cultura de codificación en el país está en aumento?
- ¿Cuánto tiempo se necesita para leer Introducción a Algoritmos de TH Cormen, para un principiante?