refactor: move big from n to arch
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 2
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
# Классическая архитектура
|
# Классическая архитектура
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 3
|
sidebar_position: 2
|
||||||
---
|
---
|
||||||
|
|
||||||
# Atomic design
|
# Atomic design
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 4
|
sidebar_position: 3
|
||||||
---
|
---
|
||||||
|
|
||||||
# Доменная архитектура
|
# Доменная архитектура
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 5
|
sidebar_position: 4
|
||||||
---
|
---
|
||||||
|
|
||||||
# Feature slice design
|
# Feature slice design
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 6
|
sidebar_position: 5
|
||||||
---
|
---
|
||||||
|
|
||||||
# Micro frontend
|
# Micro frontend
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 7
|
sidebar_position: 6
|
||||||
---
|
---
|
||||||
|
|
||||||
# Test driven development
|
# Test driven development
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 8
|
sidebar_position: 7
|
||||||
---
|
---
|
||||||
|
|
||||||
# Принципы разработки
|
# Принципы разработки
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 9
|
sidebar_position: 8
|
||||||
---
|
---
|
||||||
|
|
||||||
# ООП
|
# ООП
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
sidebar_position: 10
|
sidebar_position: 9
|
||||||
---
|
---
|
||||||
|
|
||||||
# SOLID
|
# SOLID
|
||||||
27
docs/architecture/10-algorithm-complexity.md
Normal file
27
docs/architecture/10-algorithm-complexity.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
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)** помогает понять, как будет вести себя алгоритм при увеличении объёма данных. В данном случае, если массив станет очень большим, время выполнения алгоритма будет пропорционально увеличиваться.
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"label": "Алгоритмы",
|
|
||||||
"position": 6,
|
|
||||||
"link": {
|
|
||||||
"type": "generated-index"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
# Метод оценки сложности алгоритма 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)** помогает понять, как будет вести себя алгоритм при увеличении объёма данных. В данном случае, если массив станет очень большим, время выполнения алгоритма будет пропорционально увеличиваться.
|
|
||||||
Reference in New Issue
Block a user