我的Lua功能:
for y=userPosY+radius,userPosY-radius,-1 do
for x=userPosX-radius,userPosX+radius,1 do
local oneNeighborFound = redis.call('lrange', userPosZone .. x .. y, '0', '0')
if next(oneNeighborFound) ~= nil then
table.insert(neighborsFoundInPosition, userPosZone .. x .. y)
neighborsFoundInPositionCount = neighborsFoundInPositionCount + 1
end
end
end
导致以下公式:(2n + 1)^ 2 据我正确理解,这将是O(n ^ 2)的时间复杂度。
如何将此与具有O(N + log(M))的GEORADIUS(Redis)的时间复杂度进行比较? https://redis.io/commands/GEORADIUS
时间复杂度:O(N + log(M)),其中N是圆形区域的边界框内的元素数,该元素由中心和半径定界,M是索引内的项数。
我的时间复杂度没有M。我不知道索引(M)中有多少个项目,因为我不需要知道这一点。我的索引经常变化,几乎随每个请求而变化,并且可能很大。
哪个时间复杂度更好?