gpt4 book ai didi

c++ - C++ 中的非递归归并排序

转载 作者:行者123 更新时间:2023-11-28 03:55:02 24 4
gpt4 key购买 nike

我写了整篇文章,但出现了模糊的错误。我不知道出了什么问题......呃。另外,你可能会问为什么我的老师用这种方式进行非递归测试。

void nonrec_mergesort(vector <int> & a, vector <int> & b, int s, int r)
{

int m = 1;
while (m <= r)
{
int i = 0;
while(s < (r-m))
{
stl_merge(a, b, i, ((i+i+m-1)/2), (i+m-1));
stl_merge(a, b, i+m, (min(i+2*m-1,r-1)+(i+m))/2, min(i+2*m-1,r-1));
s = s + (2*m);
}
m = m * 2;
}
}

最佳答案

此链接应该可以回答您关于自下而上归并排序的问题,但您没有提供足够的信息来轻松帮助您。

http://www.algorithmist.com/index.php/Merge_sort

Input: array a[] indexed from 0 to n-1.

m = 1
while m <= n do
i = 0
while i < n-m do
merge subarrays a[i..i+m-1] and a[i+m .. min(i+2*m-1,n-1)] in-place.
i = i + 2 * m
m = m * 2

关于c++ - C++ 中的非递归归并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com