| Сьогодні | Разом | |
| Відвідувань | 271 | 5426108 |
| Авторізацій | 22 | 436235 |
| Користувачів | 9 | 2718 |
90. Быстрая сортировка
void qsort(int* a, int left, int right) {
int l = left, r = right;
int m = a[(left + right) / 2]; // Значение опорного элемента
do {
while (a[l] < a[m])
l++;
while (a[r] > a[m])
r--;
if (l <= r) {
int temp = a[l];
a[l] = a[r];
a[r] = temp;
l++;
r--;
}
} while (l < r);
if (left < r)
qsort(a, left, r);
if (l < right)
qsort(a, l, right);
}
Предлагаемый алгоритм быстрой сортировки относится к так называемым неустойчивым типам сортировки, при котором элементы с одинаковыми значениями могут изменить свое положение в массиве относительно друг друга.