Пожалуй самый простой для понимания и реализации алгоритм упорядочивания элементов в массиве. Так как сложность алгоритма O(n²), алгоритм хорошо подходит для учебных целей — сортировка коротких списков.
Суть алгоритма — происходит обход массива так, что при каждой итерации сравниваются 2 соседних элемента. Если первый элемент больше второго, то элементы меняются местами.
Хорошая визуализация процесса работы сортировки пузырьком
function bubbleSort(arr) {
let swapped = true
while (swapped) {
swapped = false
for (let i = 0; i < arr.length - 1; i++) {
if(arr[i] > arr[i+1]) {
swap(arr, i, i+1)
swapped = true
}
}
}
return arr;
}
function swap(arr, i, j) {
const tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
Если вдруг для вас страница оказалась полезной: