如何对整数数组进行排序,但记住它们的原始排序顺序

时间:2016-04-16 07:27:42

标签: arrays sorting logic

如何对整数数组进行排序但保留其原始排序顺序以便稍后撤消我对内存要求有非常限制,并且没有空间用于原始,索引,字段或事务范围的任何单独克隆副本?

2 个答案:

答案 0 :(得分:0)

在您指定的约束中,如果您对整数小的内容进行排序,则没有多少选项。

  • 如果你知道你的阵列的长度将小于2 ^ n,对于某些n<然后,您可以使用每个数组元素较少的位数创建一个较小的数组作为索引。
  • 您可以在内存中压缩原始阵列,可能使用差分编码和其他一些低内存开销压缩算法的组合,以在内存预算中保留原始副本。
  • 如果对于你可以节省的内存来说太多了,我能想到的唯一其他选择就是将原始阵列的副本溢出到磁盘上。

答案 1 :(得分:0)

将数据乘以n并添加其原始存储区向量。其中n是10到最大整数长度的幂。在这种情况下为1。