Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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
Algorithm 使用n/2额外内存空间的合并排序算法_Algorithm_Sorting_Mergesort - Fatal编程技术网

Algorithm 使用n/2额外内存空间的合并排序算法

Algorithm 使用n/2额外内存空间的合并排序算法,algorithm,sorting,mergesort,Algorithm,Sorting,Mergesort,合并排序算法使用n(输入大小)额外的内存空间。我想知道,如果您正在递归调用范围[左,右],是否可以将额外的内存空间从n减少到n/2,然后将此范围的前半部分放入临时存储,并将合并结果直接存储在此范围内。例如,如果我们的[左,右]范围包含: [left, right] = 1 4 8 2 5 9 我们制作temp=[1 4 8] 然后开始将[left,right]的后半部分与temp合并,并覆盖[left,right]从

合并排序算法使用n(输入大小)额外的内存空间。我想知道,如果您正在递归调用范围
[左,右]
,是否可以将额外的内存空间从n减少到n/2

,然后将此范围的前半部分放入临时存储,并将合并结果直接存储在此范围内。例如,如果我们的
[左,右]
范围包含:

[left, right] = 1 4 8 2 5 9
我们制作
temp=[1 4 8]


然后开始将
[left,right]
的后半部分与
temp
合并,并覆盖
[left,right]