| Сьогодні | Разом | |
| Відвідувань | 268 | 5403851 |
| Авторізацій | 10 | 434260 |
| Користувачів | 5 | 2731 |
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);
}
Предлагаемый алгоритм быстрой сортировки относится к так называемым неустойчивым типам сортировки, при котором элементы с одинаковыми значениями могут изменить свое положение в массиве относительно друг друга.