Cómo calcular la O grande de: for (int k = 2; k <floor (sqrt (n)); k ++)

¿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.

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.

More Interesting

¿Cómo lidiar con la gestión eficiente de versiones y la compresión de múltiples versiones para bases de datos científicas?

¿Cuál es la mejor manera de demostrar sus habilidades como ingeniero de software junior durante una entrevista que no sea la implementación de algoritmos sofisticados y estructuras de datos?

¿Qué cosas debes saber antes de aprender algoritmos?

¿Qué algoritmos se pueden usar para encontrar un objeto similar en una base de datos que contenga múltiples atributos, numéricos, categóricos y no categóricos?

Cómo implementar un algoritmo de programación de disco C-SCAN para encontrar su tiempo de búsqueda

Cómo resolver el problema de 'La lista negra' en un CodeSprint reciente de HackerRank

¿Debería centrarme en aprender más idiomas o algoritmos y estructuras de datos?

¿Por qué mi código JavaScript muestra un error de bucle infinito en la línea 7? ¿Por qué no está eliminando los elementos de la matriz de entrada?

Cómo escribir un programa que ingrese n números y diga el más pequeño y el más grande

¿Cómo podría seleccionar aleatoriamente los bordes en un gráfico para conectar cada nodo [C]?

¿Puede un programa escribir un programa (es decir, el programa x puede identificar un algoritmo para escribir el programa y, a pesar del algoritmo z)?

Cómo usar el código VHDL para generar el seno de un ángulo dado usando el algoritmo CORDIC

¿Existe un algoritmo para encontrar un árbol con una longitud de ruta mínima ponderada para un gráfico conectado genérico?

Cómo encontrar el elemento mínimo en un subárbol de un montón máximo

¿Alguien puede explicar la solución a SPOJ.com - Problema M3TILE?