
Простое и Пошаговое Объяснение
Что такое Bubble Sort?
Bubble Sort (пузырьковая сортировка) — это один из самых простых алгоритмов сортировки, который помогает упорядочить элементы в массиве. Представьте, что у вас есть список чисел, которые нужно поставить в правильном порядке — от самого маленького до самого большого. Bubble Sort делает это, «пузыря» числа на правильные места, как будто бы они поднимаются вверх (всплывают), как пузырьки в воде.
Как работает Bubble Sort?
Bubble Sort работает, сравнивая два соседних числа и меняя их местами, если они стоят не в том порядке. Он повторяет этот процесс, пока весь массив не будет отсортирован.
Давайте разберём это на примере
Возьмем массив чисел: [5, 3, 8, 4, 2]. Наша цель — отсортировать этот массив по возрастанию, чтобы получить [2, 3, 4, 5, 8].
Шаг 1: Начнем с первого числа
- Возьмем первое число (5) и сравним его со следующим (3).
- Так как 5 больше 3, они не в правильном порядке. Меняем их местами.
- Теперь наш массив выглядит так:
[3, 5, 8, 4, 2].
Шаг 2: Переходим к следующей паре чисел
- Сравним второе число (5) с третьим (8).
- Они уже в правильном порядке (5 меньше 8), поэтому оставляем их как есть.
- Массив остается
[3, 5, 8, 4, 2].
Шаг 3: Сравниваем следующую пару
- Теперь сравним 8 и 4.
- 8 больше 4, значит, они не в правильном порядке. Меняем их местами.
- Теперь наш массив выглядит так:
[3, 5, 4, 8, 2].
Шаг 4: Сравниваем последнюю пару
- Сравним 8 и 2.
- Поскольку 8 больше 2, меняем их местами.
- Теперь массив выглядит так:
[3, 5, 4, 2, 8].
Теперь мы дошли до конца массива и самая большая цифра (8) оказалась на последнем месте. Но массив еще не полностью отсортирован, поэтому нам нужно повторить процесс.
Повторяем процесс
Мы повторяем шаги снова и снова, пока не отсортируем весь массив. На каждом «проходе» самые большие числа «всплывают» к концу массива, а меньшие числа постепенно остаются ближе к началу.
В нашем примере следующие проходы будут выглядеть так:
- Второй проход:
[3, 4, 2, 5, 8] - Третий проход:
[3, 2, 4, 5, 8] - Четвертый проход:
[2, 3, 4, 5, 8]
Теперь массив отсортирован!
function bubbleSort(arr) {
let swapped;
do {
swapped = false;
for (let i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) { // Если следующий элемент массива больше
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]]; // Обмен
swapped = true; // Помечаем, что был обмен
}
}
} while (swapped); // Повторяем, пока были обмены
return arr;
}
// Пример использования
let numbers = [5, 3, 8, 4, 2];
console.log(bubbleSort(numbers)); // Вывод: [2, 3, 4, 5, 8]

Ответить на Андрей Шедько Отменить ответ