Оглавление:
Определение - Что означает сложность времени?
Временная сложность - это понятие в компьютерной науке, которое имеет дело с количественной оценкой количества времени, затрачиваемого набором кода или алгоритма на обработку или выполнение, как функция количества ввода.
Другими словами, сложность времени - это, по сути, эффективность или время, необходимое программной функции для обработки заданного ввода.
Техопедия объясняет сложность времени
Сложность времени - это просто мера времени, которое требуется функции или выражению для выполнения своей задачи, а также имя процесса для измерения этого времени. Он может применяться практически к любому алгоритму или функции, но более полезен для рекурсивных функций. Нет смысла измерять сложность времени для таких приложений, как выбор имени пользователя и пароля из базы данных для сравнения или просто сохранение данных, будь то 20 мс или 5 мс; это было бы больше в линии времени доступа. Это не имеет никакого отношения к заботе о времени выполнения, а скорее к тому, что разница незначительна. Однако, если существует рекурсивная функция, которая может вызываться несколько раз, определение и понимание источника ее временной сложности может помочь сократить общее время обработки, скажем, с 600 мс до 100 мс.
Временная сложность обычно выражается в «большой O нотации», но есть и другие нотации. Это математическое представление верхнего предела коэффициента масштабирования для алгоритма, записываемое как O (Nn), где «N» - количество входов, а «n» - количество циклических выражений. Например, у нас есть алгоритм:
numbers = {5, 6, 10, 11, 2}; foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2) {
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
В массиве «numbers» есть пять входов, и цикл «foreach» повторяется дважды. Следовательно, экспоненциальный рост времени обработки происходит по мере увеличения числа входов и числа циклов.