как сделать сортировку массива javascript пузырьком
Ответы
Maksim Litvinov
16 ноября 2021
Алгоритм сортировки пузырьком заключается в повторяющихся проходах по массиву. В каждом проходе элементы сравниваются попарно и, если порядок в паре неверный, элементы меняются местами. Так продолжается до тех пор, пока при очередном проходе окажется, что обмены больше не нужны. Это значит, что массив отсортирован.
const bubbleSort = (coll) => {
let stepsCount = coll.length - 1;
// Значение переменной swapped показывает был ли
// совершен обмен элементов во время перебора массива
let swapped;
do {
swapped = false;
// Перебираем массив
for (let i = 0; i < stepsCount; i += 1) {
// и меняем местами элементы, если предыдущий больше, чем следующий
if (coll[i] > coll[i + 1]) {
const temp = coll[i];
coll[i] = coll[i + 1];
coll[i + 1] = temp;
// Если была совершена перестановка, присваиваем swapped значение true
swapped = true;
}
}
// Уменьшаем счетчик на 1, т.к. самый большой элемент уже находится
// в конце массива
stepsCount -= 1;
} while (swapped); // продолжаем, пока swapped === true
return coll;
};
console.log(bubbleSort([3, 2, 10, -2, 0])); // => [ -2, 0, 2, 3, 10 ]
0
0