Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d8c2cb0

Browse files
Add the Russian language (#206)
* init russian language * init russian language
1 parent e20294e commit d8c2cb0

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

‎ru/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Имя алгоритма
2+
3+
Напишите краткое описание алгоритма, например:
4+
5+
1. Временная сложность
6+
2. Пространственная сложность
7+
3. Приложения
8+
4. Имя основателя
9+
5. и т.д.
10+
11+
## Шаги
12+
13+
Опишите алгоритм в ясных, простых и понятных шагах.
14+
15+
## Пример
16+
17+
Проконтролируйте алгоритм на примере входных данных.
18+
19+
## Реализация
20+
21+
Ссылки на реализацию на языках программирования.
22+
23+
ПРИМЕЧАНИЕ: Ссылка должна быть только в других репозиториях этой организации.
24+
25+
## URL-адрес видео
26+
27+
Прикрепите URL-адрес видео, объясняющего алгоритм.
28+
29+
## Другие
30+
31+
Любая другая информация всегда приветствуется и должна быть включена в этот раздел.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Бинарный поиск (алгоритм "разделяй и властвуй")
2+
3+
#### Постановка задачи
4+
5+
Дан остортированный массив из `n` элементов. Написать функцию поиска индекса заданного (целевого) элемента.
6+
7+
#### Подход
8+
9+
- Поиск массива путем многократного деления массива на половины.
10+
- Изначально рассмотрим фактический массив и выберем элемент в среднем индексе.
11+
- Сохраняем нижний индекс (0) и верхний индекс (длина массива).
12+
- Если элемент равен целевому элементу, то возвращаем индекс.
13+
- Если элемент больше целевого элемента, то рассматриваем только левую половину массива (нижний индекс = 0, верхний индекс = `middle - 1`).
14+
- Если элемент меньше целевого элемента, то рассматриваем только правую половину массива (нижний индекс = `middle + 1`, верхний индекс = длина массива).
15+
- Возвращаем `-(индекс вставки + 1)`, если целевой элемент не найден в массиве (если нижний индекс больше или равен верхнему индексу). Некоторые более простые реализации просто возвращают `-1`, если элемент не найден. Смещение 1 должно быть добавлено, так как индекс вставки может быть `0` (искомое значение может быть меньше всех элементов в массиве). Поскольку индексация начинается с `0`, это должно быть отличимо от случая, когда целевой элемент имеет индекс `0`.
16+
17+
#### Временная сложность
18+
19+
- O(log n) - в худшем случае;
20+
- O(1) - в лучшем случае (если средний элемент изначального массива является целевым элементом).
21+
22+
##### Пространственная сложность
23+
24+
- O(1) - для итеративного подхода;
25+
- O(1) - для рекурсивного подхода если используется оптимизация хвостовых вызовов, `O(log n)` из-за стека вызовов рекурсии в противном случае.
26+
27+
#### Пример
28+
29+
```python
30+
arr = [1,2,3,4,5,6,7]
31+
32+
target = 2
33+
```
34+
35+
Изначально элемент в среднем индексе - `4`, который больше `2`. Поэтому мы ищем левую половину массива, т. е. `[1,2,3]`.
36+
37+
Здесь мы находим средний элемент, равный целевому элементу, поэтому возвращаем его индекс, т. е. `1`.
38+
39+
```
40+
target = 9
41+
```
42+
43+
#### Ссылки на реализации алгоритма
44+
45+
- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/searches/BinarySearch.java)
46+
- [C++](https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/search/binary_search.cpp)
47+
- [Python](https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py)
48+
- [C-Sharp](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Search/BinarySearcher.cs)
49+
- [C](https://github.com/TheAlgorithms/C/blob/master/searching/binary_search.c)
50+
51+
#### Видео обзоры
52+
53+
#### Визуальное представление
54+
55+
- [Tute Board](https://boardhub.github.io/tute/?wd=binarySearchAlgo2)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /