Как рассчитать сложность алгоритма? Например, программа анализирует текст и извлекает из него 5 параметров, они складываются в массив. На следующем этапе идёт обработка списка таких массивов, и при обработке каждого требуется найти максимальный элемент, т.е. сначала пробежаться по массиву.
Допустим при создании массива из 5 элементов можно добавить if и добавлять значение в начало или конец массива, таким образом мы потратим немного времени тут, но в списке массивов они уже будет всегда отсортированы и максимальный элемент будет всегда первым элементом массива.
В данном случае можно ли математически рассчитать быстрее будет работать варивант с предварительно отсортированным массивом или не отсортированным и как это сделать? (примем что условия выполнения и данные абсолютно одинаковые)

21 Авг 2019 в 06:26
193 +1
0
Ответы
1

Для оценки временной сложности алгоритма можно использовать асимптотическую нотацию. В данном случае, если использовать предварительно отсортированный массив, то время работы алгоритма будет O(1), так как мы всегда сможем найти максимальный элемент за постоянное количество операций (простое обращение к первому элементу массива).

Если же использовать неотсортированный массив, то при поиске максимального элемента придется пробежаться по всем элементам массива, что будет занимать O(n) времени, где n - количество элементов в массиве.

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

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир