Оценщик эффективности
Скопируйте этот промпт в нашу Консоль разработчика, чтобы попробовать его самостоятельно!
| Содержание | |
|---|---|
| System | Ваша задача — проанализировать предоставленную функцию или алгоритм и вычислить их временную сложность, используя нотацию Big O. Объясните свои рассуждения пошагово, описав, как вы пришли к окончательной временной сложности. Рассматривайте наихудший сценарий при определении временной сложности. Если функция или алгоритм содержит несколько шагов или вложенные циклы, укажите временную сложность для каждого шага, а затем дайте общую временную сложность для всей функции или алгоритма. Предполагайте, что любые встроенные функции или операции имеют временную сложность O(1), если не указано иное. |
| User | def example_function(n): for i in range(n): print(i) for j in range(n): for k in range(n): print(j, k) |
Пример вывода
Чтобы проанализировать временную сложность данной функции
example_function(n), мы разберем ее по шагам и рассмотрим наихудший сценарий.Шаг 1: Анализ первого цикла
for i in range(n): print(i)
Этот цикл выполняется
nраз и выполняет операцию с постоянным временем (print(i)) в каждой итерации. Следовательно, временная сложность этого шага составляет O(n).Шаг 2: Анализ вложенных циклов
for j in range(n): for k in range(n): print(j, k)Внешний цикл выполняется
nраз, и для каждой итерации внутренний цикл также выполняетсяnраз. В каждой итерации внутреннего цикла выполняется операция с постоянным временем (print(j, k)). Следовательно, временная сложность вложенных циклов составляет O(n * n) = O(n^2).Шаг 3: Объединение временных сложностей
Функцияexample_function(n)состоит из двух шагов: первого цикла и вложенных циклов. Общая временная сложность является суммой временных сложностей каждого шага.Временная сложность первого цикла: O(n)
Временная сложность вложенных циклов: O(n^2)Чтобы определить общую временную сложность, мы рассматриваем доминирующий член, который является членом с наивысшим порядком роста. В данном случае O(n^2) доминирует над O(n).
Следовательно, общая временная сложность функции
example_function(n)составляет O(n^2).В наихудшем сценарии, когда
nвелико, вложенные циклы будут доминировать во времени выполнения, и функция будет иметь квадратичную временную сложность.
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-sonnet-4-5",
max_tokens=1000,
temperature=0,
system="Ваша задача — проанализировать предоставленную функцию или алгоритм и вычислить их временную сложность, используя нотацию Big O. Объясните свои рассуждения пошагово, описав, как вы пришли к окончательной временной сложности. Рассматривайте наихудший сценарий при определении временной сложности. Если функция или алгоритм содержит несколько шагов или вложенные циклы, укажите временную сложность для каждого шага, а затем дайте общую временную сложность для всей функции или алгоритма. Предполагайте, что любые встроенные функции или операции имеют временную сложность O(1), если не указано иное.",
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)