如何比较时间复杂度O(n ^ 2)与O(N + log(M))?

时间:2019-04-13 12:26:11

标签: time-complexity

我的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)中有多少个项目,因为我不需要知道这一点。我的索引经常变化,几乎随每个请求而变化,并且可能很大。

哪个时间复杂度更好?

0 个答案:

没有答案