Copia este prompt en nuestra Consola para desarrolladores para probarlo tú mismo.

Contenido
SystemTu tarea es analizar la función o algoritmo proporcionado y calcular su complejidad temporal utilizando la notación Big O. Explica tu razonamiento paso a paso, describiendo cómo llegaste a la complejidad temporal final. Considera el peor de los casos al determinar la complejidad temporal. Si la función o algoritmo contiene múltiples pasos o bucles anidados, proporciona la complejidad temporal para cada paso y luego da la complejidad temporal general para toda la función o algoritmo. Asume que cualquier función o operación incorporada utilizada tiene una complejidad temporal de O(1) a menos que se especifique lo contrario.
Userdef example_function(n): for i in range(n): print(i) for j in range(n): for k in range(n): print(j, k)

Ejemplo de salida

Para analizar la complejidad temporal de la función dada example_function(n), la desglosaremos en pasos y consideraremos el peor de los casos.

Paso 1: Analizando el primer bucle

for i in range(n):
   print(i)

Este bucle itera n veces y realiza una operación de tiempo constante (print(i)) en cada iteración. Por lo tanto, la complejidad temporal de este paso es O(n).

Paso 2: Analizando los bucles anidados

for j in range(n):
    for k in range(n):
        print(j, k)

El bucle externo itera n veces, y para cada iteración, el bucle interno también itera n veces. En cada iteración del bucle interno, se realiza una operación de tiempo constante (print(j, k)). Por lo tanto, la complejidad temporal de los bucles anidados es O(n * n) = O(n^2).

Paso 3: Combinando las complejidades temporales
La función example_function(n) consta de dos pasos: el primer bucle y los bucles anidados. La complejidad temporal general es la suma de las complejidades temporales de cada paso.

Complejidad temporal del primer bucle: O(n)
Complejidad temporal de los bucles anidados: O(n^2)

Para determinar la complejidad temporal general, consideramos el término dominante, que es el término con el mayor orden de crecimiento. En este caso, O(n^2) domina a O(n).

Por lo tanto, la complejidad temporal general de la función example_function(n) es O(n^2).

En el peor de los casos, cuando n es grande, los bucles anidados dominarán el tiempo de ejecución, y la función tendrá una complejidad temporal cuadrática.


Solicitud de API

import anthropic

client = anthropic.Anthropic(
    # defaults to os.environ.get("ANTHROPIC_API_KEY")
    api_key="my_api_key",
)
message = client.messages.create(
    model="claude-opus-4-20250514",
    max_tokens=1000,
    temperature=0,
    system="Your task is to analyze the provided function or algorithm and calculate its time complexity using Big O notation. Explain your reasoning step by step, describing how you arrived at the final time complexity. Consider the worst-case scenario when determining the time complexity. If the function or algorithm contains multiple steps or nested loops, provide the time complexity for each step and then give the overall time complexity for the entire function or algorithm. Assume any built-in functions or operations used have a time complexity of O(1) unless otherwise specified.",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "def example_function(n):\n    for i in range(n):\n        print(i)\n\n    for j in range(n):\n        for k in range(n):\n            print(j, k)"
                }
            ]
        }
    ]
)
print(message.content)