Скажем, у меня есть массив a
длины n
и второй массив indices
, также длина n
. indices
содержит некоторую произвольную перестановку последовательности [0, n)
. Я хочу переупорядочить a
так, чтобы он был в порядке, указанном indices
. Например, используя синтаксис D:
auto a = [8, 6, 7, 5, 3, 0, 9];
auto indices = [3, 6, 2, 4, 0, 1, 5];
reindexInPlace(a, indices);
assert(a == [5, 9, 7, 3, 8, 6, 0]);
Можно ли это сделать как в O (1) пространстве, так и в O (n) времени, предпочтительно без мутации indices
?