Назад к вопросам
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);
}