Задача состоит в том, чтобы частично отсортировать вектор с дубликатами s.t. медиана (n-й элемент) находится в том положении, в котором она была бы, если бы вектор был отсортирован. Все более мелкие элементы должны быть слева, все более крупные — справа. Все элементы со значением, равным медиане, должны быть в исходном порядке, но только они, а не остальные элементы.
Как бы вы решили это?
Мое первоначальное решение:
- Используйте std::nth_element(), чтобы найти срединный элемент
- пройти вектор и отсортировать только элементы с тем же значением, что и медиана по отношению к их индексу. Как бы я сделал это эффективно?
{3 3 3 3}
первоначальный заказ? - person 463035818_is_not_a_number   schedule 22.05.2015vector<Point<T>>
сstruct Point{ num_t x,y,z, ID; };
, поэтому существует исходный порядок. - person aces   schedule 22.05.2015