PassFront
  1. PassFront
  2. База знаний
  3. Сортировки и поиск

Зачем нужен Merge Sort?

Сортировки и поиск

Merge Sort — стабильный алгоритм сортировки слиянием со сложностью O(n log n) в худшем, среднем и лучшем случаях. Его используют, когда нужна гарантированная производительность и стабильность (сохранение порядка равных элементов). В JavaScript движок V8 использует Timsort (гибрид сортировки слиянием и вставками) для Array.prototype.sort.

function mergeSort(arr) {
  if (arr.length <= 1) return arr;
  const mid = Math.floor(arr.length / 2);
  return merge(
    mergeSort(arr.slice(0, mid)),
    mergeSort(arr.slice(mid))
  );
}
function merge(left, right) {
  const result = [];
  while (left.length && right.length) {
    result.push(left[0] <= right[0] ? left.shift() : right.shift());
  }
  return result.concat(left, right);
}

Коротко для собеседования

Merge Sort стабилен и всегда работает за O(n log n), но тратит O(n) дополнительной памяти. Его выбирают, когда важны гарантированное время и сохранение порядка равных элементов.

Другие вопросы раздела