Лічильник
Сьогодні Разом
Відвідувань 291 5265991
Авторізацій 45 421850
Користувачів 36 2716
Статья

91. Быстрая сортировка (2й вариант)


Еще один вариант рекурсивной реализации алгоритма быстрой сортировки:
void swap(int &a, int &b) {
  int tmp = a;
  a = b;
  b = tmp;
}

void qsort(int* a, int left, int right) {
  int l = left, r = right, m = a[(left + right) / 2];
  while (l < r) {
    while (a[l] < m)
      l++;
    while (a[r] > m)
      r--;
    if (l <= r)
      swap(a[l++], a[r--]);
  }
  if (left < r)
    qsort(a, left, r);
  if (l < right)
    qsort(a, l, right);
}