Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: sorting algorithms, time complexity, space complexity, quicksort, mergesort, bubblesort

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

Этот вопрос проверяет знание базовых алгоритмов сортировки, их временной и пространственной сложности, а также умение выбирать подходящий алгоритм в зависимости от данных.

Короткий ответ

Алгоритмы сортировки упорядочивают элементы в списке. Основные: пузырьковая (O(n²)), быстрая (O(n log n) в среднем), сортировка слиянием (O(n log n)), вставками (O(n²) для малых данных). Выбор зависит от размера данных и требований к памяти.

Длинный ответ

Основные алгоритмы сортировки

Сортировка — это процесс упорядочивания элементов в заданном порядке (обычно по возрастанию или убыванию). Знание алгоритмов сортировки важно для оптимизации производительности программ, особенно при работе с большими объемами данных.

Популярные алгоритмы

  • Пузырьковая сортировка (Bubble Sort): Проходит по массиву, сравнивая соседние элементы и меняя их местами, если они не в порядке. Сложность O(n²), неэффективна для больших данных.
  • Быстрая сортировка (Quick Sort): Выбирает опорный элемент, делит массив на части меньше и больше опорного, рекурсивно сортирует их. Средняя сложность O(n log n), но в худшем случае O(n²).
  • Сортировка слиянием (Merge Sort): Делит массив пополам, рекурсивно сортирует каждую половину, затем сливает их. Всегда O(n log n), требует O(n) дополнительной памяти.
  • Сортировка вставками (Insertion Sort): Строит отсортированный массив, вставляя каждый новый элемент на правильное место. Эффективна для малых или почти отсортированных данных (O(n) в лучшем случае).

Пример кода на JavaScript

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

console.log(quickSort([3, 6, 8, 10, 1, 2, 1])); // [1, 1, 2, 3, 6, 8, 10]

Вывод

Выбор алгоритма сортировки зависит от контекста: для небольших массивов подойдут простые алгоритмы (вставками), для больших — быстрая или слиянием. Понимание их сложности помогает писать эффективный код.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#sorting algorithms

#time complexity

#space complexity

#quicksort

#mergesort

#bubblesort

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.