Back to questions
Samsung Research Center
Junior — Middle
86
Какой алгоритм сортировки считается наиболее эффективным для общего использования?
Companies where asked
Answer from AI
sobes.tech AI
Наиболее эффективным и широко используемым алгоритмом сортировки для общего применения считается QuickSort (быстрая сортировка). Он имеет среднюю временную сложность O(n log n) и обычно работает быстрее других алгоритмов на практике благодаря хорошей локальности данных и простоте реализации.
Однако стоит учитывать, что в худшем случае QuickSort может работать за O(n²), поэтому в некоторых реализациях используют гибридные подходы, например, переключение на сортировку вставками для маленьких массивов.
Пример использования QuickSort на C++:
#include <iostream>
#include <vector>
void quickSort(std::vector<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);
}
int main() {
std::vector<int> data = {3, 6, 8, 10, 1, 2, 1};
quickSort(data, 0, data.size() - 1);
for (int num : data) {
std::cout << num << " ";
}
return 0;
}