Рассчитать время / пространство сложности при запуске программы

Я пробую различные типы алгоритмов сортировки и понимаю концепцию асимптотической сложности времени и пространства.

Мне интересно, можем ли мы написать какую-то логику в самой программе, чтобы вычислить пространственно-временную сложность этого алгоритма, чтобы у нас было доказательство того, что алгоритм ведет себя так, как ожидалось?

У кого-нибудь есть мысли по этому поводу?

1 ответ

С помощью инструментов вы можете измерить только время и пространство, используемое для конкретного случая проблемы. Только если бы вы перечислили все возможные экземпляры проблемы, вы смогли бы доказать наихудший случай сложности времени и пространства. На практике это довольно неосуществимо.

Вам нужно будет перечислить все возможные экземпляры, потому что вы не знаете, какие входные данные будут сложными, а какие - нетрудными. Например, если бы вы тестировали BubbleSort с упорядоченными входами от 1... n с переменной длиной, вы бы никогда не наблюдали худший случай.

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