gpt4 book ai didi

algorithm - 奇怪排序的递归关系

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:55 25 4
gpt4 key购买 nike

我对斐波那契数列和二分查找的递推关系很满意,但我不知道如何找到该算法的递推关系:

Algorithm strange-sort(A[0,,,,,,n-1])
if n=2 and A[0]>A[1]
{
swap(a[0],a[1])
}
else if n>2
{
m=ceiling(2n/3)
strange-sort(A[0.....m-1])
strange-sort(A[n-m......n-1])
strange-sort(A[0......m-1])
}

我如何获得该算法的递推关系?它解决了什么问题?

最佳答案

这是 Stooge Sort算法。维基百科说运行时间是 O(nlog 3/log 1.5),通过提出正确的循环我们可以明白原因。

请注意,每个递归调用都执行 O(1) 的工作,然后进行三个大小为 2n/3 的递归调用。这给了我们递归关系

T(n) = 3T(2n / 3) + O(1)

我们现在可以使用 Master Theorem解决这个问题。此处,a = 3、b = 3/2 和 d = 0。由于 logb a = log1.5 3 > 0,根据主定理,这求解为 O (nlog1.5 3)。使用对数的性质,这重新排列为 O(nlog 3/log 1.5),大约为 O(n2.70951129135...)。

希望这对您有所帮助!

关于algorithm - 奇怪排序的递归关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17632464/

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