Я нашел реализацию алгоритма в C ++ здесь
https://gist.github.com/andlima/1774060
но я не понимаю цели нескольких строк и как они работают,
Я буду очень благодарен за любую помощь с этим.
N
, добавлять N-1
до разделения.if
условие проверяет, имеет ли кусок пять элементов. for
циклы внутри выполняют сортировку выбора, меняя местами элементы, чтобы поместить медиану в индекс w[2]
medians
как только закончится рекурсивный вызов, потому что остальной части алгоритма это не нужно.pivot
в конечную позицию массива.Других решений пока нет …