Javascript: алгоритм пузырьковой сортировки массива
Рассмотрим алгоритм пузырьковой сортировки массива в javascript. Для чего это нужно, к примеру у нас есть массив чисел, где все цифры расположены в разном порядке. Наша задача отсортировать его от меньшего к большему.
Пузырьковый алгоритм
- Создаем переменную swapped для определения была ли итерация с заменой элементов массива
- Создадим цикл for по массиву
- На каждой итерации проверяем если текущий элемент массива больше следующего
- Меняем местами текущий и следующий если во втором пункте будет true
- Ставим переменную swapped которую объявили выше в true, это означает, что в итерации была замена местами
- Следующая итерация: Если во втором пункте false ничего не делаем
- Всю логику заворачиваем в конструкцию do while, это значит что наш цикл будет повторяться пока переменная swapped не будет false. В начале конструкции присваиваем swapped false.
Цикл будет выполняться до тех пор, пока замена мест не закончится
Функция пузырьковой сортировки
function sortBubble( arr ) {
let swapped;
do {
swapped = false;
for( let i = 0; i < arr.length - 1; i++ ) {
if ( arr[i] > arr[i+1] ) {
let temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
swapped = true;
}
}
} while ( swapped )
}
let arr = [72, 0, -2, 66, -4, 3, 11];
sortBubble( arr );
console.log( arr );
// [-4, -2, 0, 3, 11, 66, 72]