Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何对整数数组进行排序,但记住其原始排序顺序_Arrays_Sorting_Logic - Fatal编程技术网

Arrays 如何对整数数组进行排序,但记住其原始排序顺序

Arrays 如何对整数数组进行排序,但记住其原始排序顺序,arrays,sorting,logic,Arrays,Sorting,Logic,如何对整数数组进行排序,但保留其原始排序顺序以备以后撤消我的内存需求非常有限,并且没有空间用于原始、索引、字段或事务范围的任何单独克隆副本?在您指定和给定的约束范围内,您正在对小到整数的内容进行排序,你没有很多选择 如果知道数组的长度在某些n

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

在您指定和给定的约束范围内,您正在对小到整数的内容进行排序,你没有很多选择

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

将数据乘以n并将其原始桶向量相加。其中n是最高整数长度的10次方。1在这种情况下。

一个选项是使用数组列表结构,其中数组中的每个节点都指向以前所在的bucket。但是,复制操作可能需要临时将空间加倍。除特殊情况外,排序是不可逆的。因此需要一个持久置换向量,将排序数组中的索引映射到原始数组中的索引。只有8个整数。1,2,3,4,5,6,7,8我只有9个存储桶8用于数据交换,一个用于气泡交换。