55
правок
Изменения
Нет описания правки
return A[k];
}
for i = l..(r - 4)
sort(A[i..i + 4]; //сортируем каждую группу
i += 5;
n = r - l + 1;
Medians[1..n/5] = A[(l + 2):5:(r - 2)]; //создаем массив медиан
Medians[i] = A[j]
j += 5;
x = select(Medians, 1, n/5, n/10); //x - рассекающий элемент
A = share(A, l, r, x); //делим массив относительно элемента x
for i = l to r
if (A[i] == x)
m = i; //находим индекс элемента x в исходном массиве
if (m = k)
return A[m];