【发布时间】:2009-04-19 18:36:18
【问题描述】:
我有一个包含 n = 32 个项目的数组,其中包含正值和负值。第一个 n/2 元素是正数并按值排序,第二个 n/2 元素是负数并按值排序。我想按值对整个数组进行排序,从最小的负值到最大的正值,这意味着如果有 32 个元素,则前 16 个(n/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};
有谁知道转移元素以从原始生成排序数组的最佳方法是什么?
顺便说一下,这个数组绑定到另一个数组,该数组没有按大小排序的元素,并且必须以与原始相同的方式移动,因此该数组不应该按大小排序,它必须被转移。
【问题讨论】:
-
为什么要移动而不是排序?
-
因为我必须移动另一个未按大小排序的数组,就像我为这个数组所做的那样。假设的示例表示一个 x 轴,它按大小排序,但另一个数组包含不应按大小(y 轴)排序的值。
-
您想根据另一个数组中包含的值对一个数组进行排序吗?换句话说:您想对一个数组进行排序,然后将相同的步骤序列应用于另一个数组吗?