как сделать сортировку массива javascript пузырьком

Аватар пользователя Maksim Litvinov
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
Познакомьтесь с основами JavaScript бесплатно