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 e7c0852

Browse files
romankurnovskiiPanquesito7
andauthored
[ru]: add Dutch National Flag Sort algo (#207)
Co-authored-by: David Leal <halfpacho@gmail.com>
1 parent 8821b68 commit e7c0852

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Задача флага Нидерландов
2+
3+
#### Постановка задачи
4+
5+
Дан массив с несколькими цветами (красный, белый и синий), нужно упорядочить его таким образом, чтобы все цвета были сгруппированы вместе. Мы будем использовать целые числа `0`, `1` и `2` для представления красного, белого и синего цветов соответственно.
6+
7+
Нужно отсортировать массив на месте без использования дополнительной памяти и стандартной функции сортировки.
8+
9+
#### Алгоритм
10+
11+
1. Создайте три указателя - `low`, `mid` и `high`.
12+
1. Установите `low` и `mid` в начало массива, а `high` в конец массива.
13+
1. Сравните `nums[mid]` со значением `1`.
14+
- Если `nums[mid]` равен 1, просто увеличьте mid.
15+
- Если `nums[mid]` равен 0, поменяйте `nums[mid]` и `nums[low]`, а затем увеличьте `mid` и `low` на 1.
16+
- Если `nums[mid]` равен 2, поменяйте `nums[mid]` и `nums[high]`, а затем уменьшите `high` на 1.
17+
1. Продолжайте шаги 3 до тех пор, пока `mid <= high`.
18+
19+
#### Временная сложность
20+
21+
- O(n)
22+
23+
#### Пространственная сложность
24+
25+
- O(1)
26+
27+
#### Пример
28+
29+
```python
30+
nums = [2, 0, 2, 1, 1, 0]
31+
32+
print(dutch_flag_sort(nums))
33+
# Output: [0, 0, 1, 1, 2, 2]
34+
```
35+
36+
#### Ссылки на реализации алгоритма
37+
38+
- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/sorts/DutchNationalFlagSort.java)
39+
- [Python](https://github.com/TheAlgorithms/Python/blob/master/sorts/dutch_national_flag_sort.py)

0 commit comments

Comments
(0)

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