void qsort4(l, u) if u - l < cutoff return swap(l, randint(l, u)) t = x[l] i = l j = u+1 while (1) /* пропуск элементов справа и слева, чтобы не делать лишней работы */ do i++ while i <= u && x[i] < t do j-- while x[j] > t if i > j break; tmp = x[i] x[i] = x[j] x[j] = tmp swap(l, j) qsort4(l, j-1) qsort4(j+1, u) /* При этом вызов всей процедуры сортировки в программе будет иметь вид: */ qsort4(0, n-1); isort3();