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