Метод пузырька в JavaScript: примеры кода
JavaScript

Метод пузырька в JavaScript: примеры кода

Razilator

Пузырьковый метод или метод пузырька — это простой алгоритм сортировки. Он работает путем многократного прохода по списку, сравнения каждой пары соседних элементов и замены их местами, если они расположены в неправильном порядке.

Базовая сортировка пузырьком

Вот базовый пример сортировки пузырьком на JavaScript:

index.js
function bubbleSort(arr) {
    let len = arr.length;
    for (let i = 0; i < len; i++) {
        for (let j = 0; j < len - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                let temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return arr;
}

let arr = [64, 34, 25, 12, 22, 11, 90];
console.log(bubbleSort(arr));  // Выведет: [11, 12, 22, 25, 34, 64, 90]

Сортировка пузырьком в порядке убывания на JavaScript

Сортировка пузырьком также может быть легко адаптирована для сортировки в порядке убывания. Все, что вам нужно сделать, - это изменить условие сравнения в цикле. Вместо того чтобы менять элементы местами, если они в неправильном порядке по возрастанию, вы меняете их местами, если они в неправильном порядке по убыванию.

Вот пример сортировки пузырьком в порядке убывания на JavaScript:

index.js
function bubbleSortDescending(arr) {
    let len = arr.length;
    for (let i = 0; i < len; i++) {
        for (let j = 0; j < len - i - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                let temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return arr;
}

let arr = [64, 34, 25, 12, 22, 11, 90];
console.log(bubbleSortDescending(arr));  // Выведет: [90, 64, 34, 25, 22, 12, 11]

Оптимизированная сортировка пузырьком на JavaScript

Мы можем оптимизировать сортировку пузырьком, останавливая алгоритм, если за проход по списку не было сделано ни одного обмена. Это означает, что список уже отсортирован.

index.js
function bubbleSortOptimized(arr) {
    let len = arr.length;
    let swapped;
    do {
        swapped = false;
        for (let i = 0; i < len; i++) {
            if (arr[i] > arr[i + 1]) {
                let temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
                swapped = true;
            }
        }
    } while (swapped);
    return arr;
}

let arr = [5, 1, 4, 2, 8, 0, 2];
console.log(bubbleSortOptimized(arr));  // Выведет: [0, 1, 2, 2, 4, 5, 8]

Заключение

Сортировка пузырьком - это простой алгоритм сортировки, который может быть легко реализован на JavaScript. Однако его эффективность оставляет желать лучшего, и он редко используется на практике для больших списков. Несмотря на это, он является хорошим примером для понимания базовых принципов сортировки и алгоритмов.

;