Встречается на собеседованиях • сегодня

Какие знаешь методы сортировки

Быстрая сортировка (Quick Sort)
Рекурсивный алгоритм с опорным элементом (pivot). В среднем O(n log n), но в худшем O(n²).

javascript
function quickSort(arr) {
  if (arr.length <= 1) return arr;
  const pivot = arr[0];
  const left = [], right = [];
  for (let i = 1; i < arr.length; i++) {
    arr[i] < pivot ? left.push(arr[i]) : right.push(arr[i]);
  }
  return [...quickSort(left), pivot, ...quickSort(right)];
}

Сортировка слиянием (Merge Sort)
Разделяет массив пополам, сортирует части и сливает их. Всегда O(n log n), но требует O(n) дополнительной памяти.

Сортировка пузырьком (Bubble Sort)
Простейший метод, но неэффективный (O(n²)). Попарно сравнивает элементы.

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

Встроенные методы
В JS: arr.sort(), но для чисел нужен компаратор:

javascript
[3, 1, 2].sort((a, b) => a - b); // [1, 2, 3]

Также есть: Timsort (в Python), Heap Sort, Counting Sort (для чисел).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы