Вызов функции cProfile.run против сложности

Когда я звоню cProfile.run('myFunction1') возвращается с несколькими вызовами функций.

Я хотел бы сравнить различные версии myFunction и найти наиболее эффективную (например, с наименьшей сложностью).

Какая связь между function calls и complexity?

Что описывают вызовы функций?

Если у меня есть две функции, является ли функция с наименьшим числом вызовов функций наиболее эффективной?

1 ответ

Решение

Количество вызовов функций - это как раз то, что означает: количество вызовов (под) функций. Нет строгой корреляции между вызовами func и сложностью. Чтобы найти наиболее эффективную реализацию, вы должны попытаться сопоставить вашу функцию с различными наборами аргументов и синхронизировать ее. Использование модуля timeit.

Вычисление сложности функции - слишком широкий аргумент для одного ответа. Это зависит от самого алгоритма и сложности вызываемых им подфункций.

Здесь для больше: https://en.wikipedia.org/wiki/Analysis_of_algorithms

Другие вопросы по тегам