- Количество шагов равно длине массива
- На каждой итерации сравниваем соседние элементы и при необходимости меняем местами.
- Оптимизация: можно установить флаг для отслеживания того, были перестановки или нет. Если перестановок не было, то это знак, что массив уже отсортирован и выполнение цикла прервется.
Time Complexity: O(n^2)
Space Complexity: O(1)
Когда использовать:
- нужно отсортировать небольшое количество элементов
- если элементов много, но большинство уже отсортировано