-
Notifications
You must be signed in to change notification settings - Fork 3
Bubble Sort
Самый простой вариант сортировки массива. В данном случае мы используем два вложенных цикла.
Идея заключается в том, что мы во внутреннем цикле идем по массиву и как бы "поднимаем" наибольший элемент вверх. После этого мы еще раз идем по массиву, но уже не до конца, так как в конце уже самый большой элемент и так. И так мы делаем n раз, где n - длина массива. Т.е у нас n итераций получается за каждую из которых мы "поднимаем" элементы вверх. Получается, что у нас элементы массива наибольшие всплывают, как пузырьки.
Сортировка пузырьком крайне медленная, сложность - О(n^2)
, из-за двух вложенных циклов.
Мы можем улучшить ее. так как если у нас, например, массив почти отсортирован, то нам нет смысла ждать все n итераций. Для этого можно завести счетчик swap-ов(или обычный boolean флаг), т.е счетчик перестановок - который будет сигнализировать о том, были ли во время итерации "всплытия", если нет, то массив уже отсортирован, а значит можно выходить из цикла.
//todo example in java code