OrderElements
次の関数を実装するにはどうすればよいですか?
char chars[] = {'a', 'b', 'c', 'd', 'e'};
int want_order[] = {2, 4, 3, 0, 1};
int length = 5;
OrderElements(chars, want_order, length);
// chars now contains: c, e, d, a, b
線形の余分なスペースを使用できる場合は簡単ですが、一定の余分なスペースのみで実行できますか?つまり、chars
要素をインプレースで直接並べ替えることができますか?
PS:これは試験問題ではありませんでした。私は実際にこの関数が必要です。
明確化:要素の望ましい最終的な順序について誤解があるようです。chars
例の結果の配列には、元の配列を参照して、次の要素が含まれている必要があります。
{chars[2], chars[4], chars[3], chars[0], chars[1]}
これは
{'c', 'e', 'd', 'a', 'b'}.