0
我应该为四元搜索算法编写代码。我得到的唯一说明是它是对二分搜索算法的修改,但不是将数组拆分为两个,而是将数组拆分为四个。四元搜索算法
我有点困惑,像这样的搜索应该如何工作。我搜索了一个伪代码,甚至只是一个YouTube视频来解释/显示这个搜索是如何工作的,但我一直无法找到任何东西。
有没有人有一个伪代码或快速和肮脏的解释如何这种搜索算法可能工作?
谢谢!
我应该为四元搜索算法编写代码。我得到的唯一说明是它是对二分搜索算法的修改,但不是将数组拆分为两个,而是将数组拆分为四个。四元搜索算法
我有点困惑,像这样的搜索应该如何工作。我搜索了一个伪代码,甚至只是一个YouTube视频来解释/显示这个搜索是如何工作的,但我一直无法找到任何东西。
有没有人有一个伪代码或快速和肮脏的解释如何这种搜索算法可能工作?
谢谢!
QuaternarySearch(A[0. . n-1], value, low, high)
while high ≥ 1
p1/4 = low + ((high – low)/4) //first quarter point
p1/2 = low + ((high – low)/2) //second quarter point
p3/4 = low + (3(high – low)/4) //third quarter point
if A[p1/4] = value
return A[p1/4]
else if A[p1/2] = value
return A[p1/2]
else if A[p3/4] = value
return A[p3/4]
else if A[p1/4] > value
return QuaternarySearch(A, value, low, p1/4-1)
else if A[p1/2] > value
return QuaternarySearch(A, value, p1/4+1, p1/2-1)
else if A[p3/4] > value > A[p1/2]
return QuaternarySearch(A, value, p1/2+1, p3/4-1)
else //if A[p3/4] < value
return QuarterSearch(A, value, p3/4 + 1, high)
请问有关代码的问题。 – karan
假设您使用整数的算法:搜索算法是递归函数。你创建一个由4个元素组成的数组,并检查你正在搜索的值是否大于元素n AND小于元素n + 1。然后你拿出适配元素和你的值,并用这两个参数再次调用函数(递归)。 – Radinator
这很有道理。谢谢! –