Knoledge_v0

This commit is contained in:
lambehorn
2025-12-19 13:39:24 +05:00
parent e97ecdf4dc
commit 422861cb0b
165 changed files with 2282 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
сортировка простыми обменами, метод сортировки обменами. По сравнению с другими алгоритмами считается простейшим для понимания и реализации. Эффективен для массивов небольшого размера. n - размер массива, количество элементов массива. [Сложность алгоритма](Оценка%20сложности%20алгоритма): $O(n^2)$.
#### Алгоритм
Выполняется некоторое количество проходов по массиву - начиная от начала массива, перебираются пары соседних элементов массива. Если 1-й элемент пары больше 2-го, элементы переставляются (выполняется обмен).
Пары элементов массива перебираются (проходы по массиву повторяются) либо $(n-1)$ раз, либо до тех пор, пока на очередном проходе не обнаружится, что более не требуется выполнять перестановки (обмены) (массив отсортирован).
При каждом проходе алгоритма по внутреннему циклу очередной наибольший элемент массива ставится на своё место в конце массива рядом с предыдущим «наибольшим элементом», а наименьший элемент перемещается на одну позицию к началу массива (как бы «всплывает» до нужной позиции, как пузырёк в воде - откуда и название алгоритма
#### Пример
![[sort_bubble.gif]]
#### В виде кода
```python
def bubble_sort(a):
n = len(a)
for i in range(n):
for j in range(0, n - 1 - i):
if a[j] > a[j + 1]:
a[j], a[j + 1] = a[j + 1], a[j]
```