Ej1: De hecho es O (n), por las razones que dijiste. Pero las declaraciones de impresión son O (1) (cualquier declaración de impresión simplemente imprimiendo un valor directamente, o simplemente haciendo una matemática simple a través de un operador como +, -, *,%, etc. siempre es O (1)). % le da el resto del número después de dividir. La complejidad del tiempo es (O (1 * n / 8) (haciendo una impresión O (1) n / 8 veces) + O (1) + O (1 * n-1)) que equivale a O (n / 8 + 1 + n-1) == O (n)
Ej2: Esa línea de impresión solo imprimirá el producto de los dos índices de bucle. 0, 2, 6, etc.
Su bucle interno es O (1 * n), y usted hace el bucle interno n veces, por lo que es O (n ^ 2) .
- ¿Qué algoritmos usa Bing para clasificar los resultados de búsqueda? ¿La patente de Google les impide usar PageRank? Análisis de enlaces en general?
- ¿Cuándo debo comenzar a aprender algoritmos de C ++?
- ¿Por qué no puedo resolver mi Cubo de Rubik de 4 x 4 x 4 como un cubo de Rubik de 3 x 3 x 3 si ya he hecho los centros y los bordes?
- Un algoritmo de cifrado de bloque en su forma básica casi nunca se usa para cifrar mensajes largos. ¿Por qué?
- Estoy comenzando un proyecto de clasificación de picos, ¿dónde encuentro datos sin procesar y / o simulados?
Ej3: conecte algunos ejemplos Ns y vea qué sucede. Como siempre voy a ser solo 2 menos que el valor de la condición de finalización, el bucle externo solo se ejecuta 3 veces y, por lo tanto, el código es O (3 * n) == O (n).
¡Me equivoqué originalmente!
Ex4: la misma lógica para esto, es O (n ^ 2) .
No estoy completamente seguro de si sus líneas como “System.out.println (…) // no estoy seguro de qué hará esto, entonces es O (lo que sea)” significa que no sabe lo que está haciendo la impresión o no saber cuál es su complejidad temporal, pero de cualquier manera eso es algo que debes saber antes de intentar cosas a este nivel, a pesar de que estas cosas estén correctas
También es extraño que las preguntas sean tan repetitivas, ¿quién te dio esto?
¡Espero que esto ayude!