正の値と負の値を持つn=32個のアイテムの配列があります。最初のn/2要素は正で値でソートされ、2番目のn/2要素も負で値でソートされます。最小の負の値から最大の正の値まで、配列全体を値で並べ替えたいと思います。つまり、32個の要素がある場合、最初の16(n / 2)個の並べ替えられた要素には、元の配列の2番目の16個の要素の値が含まれている必要があります。ソートされた配列の次の16個の要素には、元の配列の最初の16個の値が含まれている必要があります。
架空の例:
double[] original = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -16, -15, ..., -1};
double[] sorted = {-16, -15, ...., -1, 1, 2, ..., 16};
誰かが要素をシフトして元の配列からソートされた配列を生成するための最良の方法を知っていますか?
ちなみに、この配列は、同じ方法でサイズで並べ替えられた要素を持たない別の配列に関連付けられており、元の配列と同じようにシフトする必要があるため、配列をサイズで並べ替えないでください。シフトする必要があります。