¿Cómo se calcula la O grande de:
for (int k = 2; k < floor (sqrt(n)); k++)
?
Al observar el término que rige el número de iteraciones. En este caso, es [math] \ sqrt {n} [/ math].
Sin embargo, hay al menos tres formas de responder la pregunta subyacente.
- Cómo reducir la programación dinámica a programación lineal
- ¿Cómo clasifica Quora las preguntas? ¿Qué algoritmos usan?
- ¿Existe un algoritmo más rápido que O (kn ^ 2) para calcular las rutas más cortas k-step de una sola fuente en un gráfico ponderado?
- ¿Por qué la clasificación rápida se considera una clasificación inestable?
- Cómo construir un secuenciador de ADN
Pedantic: No se puede determinar, porque no especificó lo que está haciendo dentro del ciclo for
. Por ejemplo, si es el equivalente de una búsqueda de fuerza bruta TSP, su tiempo de ejecución se convirtió en [matemáticas] O (n!) [/ Matemáticas].
Teórico: suponiendo que el ciclo realmente está vacío, entonces [math] O (\ sqrt {n}) [/ math]. Si su maestro es de la vieja escuela, podría insistir en [matemáticas] O (n) [/ matemáticas]: las complejidades de tiempo con poderes fraccionales no eran una cosa cuando estaba en la universidad.
Vida real: [matemática] O (\ sqrt {n}) [/ matemática], pero debido a que un buen compilador puede optimizar los bucles vacíos a nada, en realidad podría ser [matemática] O (1) [/ matemática].
TL; DR : los detalles importan y parece que faltan algunos.