Knoledge_v0
This commit is contained in:
19
Языки программирования/Сортировка пузырьком.md
Normal file
19
Языки программирования/Сортировка пузырьком.md
Normal 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]
|
||||
```
|
||||
Reference in New Issue
Block a user