Files
frontend-docs/docs/architecture/10-algorithm-complexity.md

27 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
sidebar_position: 10
---
# Метод оценки сложности алгоритма O(n)
Метод оценки сложности алгоритма **O(n)** используется для анализа времени выполнения алгоритма в зависимости от размера входных данных. Обозначение **O(n)** означает, что время выполнения алгоритма растёт линейно с увеличением размера входных данных.
## Пример на JavaScript:
Рассмотрим простой пример алгоритма, который проходит по всем элементам массива и выполняет какую-то операцию (например, вывод в консоль):
```js
function printArrayElements(arr) {
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
}
const array = [1, 2, 3, 4, 5];
printArrayElements(array);
```
## Объяснение:
1. **Цикл `for`:** В этом примере цикл `for` проходит по каждому элементу массива `arr`. Количество итераций цикла равно длине массива `n`.
2. **Линейная зависимость:** Если массив увеличивается в размере (например, в 2 раза), то количество итераций цикла также увеличивается в 2 раза. Это означает, что время выполнения алгоритма растёт линейно с увеличением размера входных данных.
3. **Сложность O(n):** Таким образом, сложность этого алгоритма оценивается как **O(n)**, где `n` — это количество элементов в массиве.
## Заключение:
Метод оценки сложности **O(n)** помогает понять, как будет вести себя алгоритм при увеличении объёма данных. В данном случае, если массив станет очень большим, время выполнения алгоритма будет пропорционально увеличиваться.