Sobes.tech
Назад к вопросам
Junior — Middle
96

Можешь ли ты перечислить различные алгоритмы сортировки, которые ты знаешь?

Ответ от нейросети

sobes.tech AI

Существует множество алгоритмов сортировки, вот некоторые из наиболее известных:

  • Пузырьковая сортировка (Bubble Sort) — простой алгоритм, который многократно проходит по списку, сравнивая соседние элементы и меняя их местами, если они идут в неправильном порядке.
  • Сортировка вставками (Insertion Sort) — строит отсортированный массив по одному элементу, вставляя каждый новый элемент в нужное место.
  • Сортировка выбором (Selection Sort) — на каждом шаге выбирает минимальный элемент из неотсортированной части и меняет его местами с первым элементом этой части.
  • Сортировка слиянием (Merge Sort) — рекурсивно делит массив на половины, сортирует их и сливает обратно.
  • Быстрая сортировка (Quick Sort) — выбирает опорный элемент (pivot), делит массив на части меньше и больше опорного, рекурсивно сортирует их.
  • Пирамидальная сортировка (Heap Sort) — строит структуру кучи и извлекает максимальный элемент, перестраивая кучу.

Пример быстрой сортировки на C++:

void quickSort(int arr[], int left, int right) {
    int i = left, j = right;
    int pivot = arr[(left + right) / 2];

    while (i <= j) {
        while (arr[i] < pivot) i++;
        while (arr[j] > pivot) j--;
        if (i <= j) {
            std::swap(arr[i], arr[j]);
            i++; j--;
        }
    }

    if (left < j) quickSort(arr, left, j);
    if (i < right) quickSort(arr, i, right);
}