O(logN)是什么意思?

nivaini 2005-05-21 07:48:36
没有写底数的log,底数算什么呢?
...全文
29833 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ericqxg007 2005-05-25
  • 打赏
  • 举报
回复
大O表示法表示算法复杂度
logn 表示复杂度为以为底n的对数
arrowcy 2005-05-25
  • 打赏
  • 举报
回复
谢谢大家,书上的原文应该是:

T=K*log2(N) 注:2是小2
时间T与以2为底的对数成正比。实际上,由于所有的对数都和其他对数成比例(从底数为2转换到底数为10需乘以3.322),我们可以将这个为常数的底数也并入K.由此不必指定底数:
T = K*log(N)

这是《数据结构》第一章里的一段话,底数到底应该是几呢?

======================================================================
既然这里都说了不必指定底数,意思就是说任一指定一个底数的话,效果都是一样的,就不必去计较这个了。
如果看到那个地方说某个算法复杂度是O(logN)的话,那可能直接根据那个算法计算出来的基本操作次数是log2(N),也可能是log3(N)甚至还可能是2*log2(N*3)等等,反正这个时候你知道底数也没有什么用,因为你不知道常数项。只不过,计算机中的很多算法如果是O(logN)的复杂度的话,其基本操作的次数都是C1*log2(C2*N),但是这并不是说见到logN就一定是log2N
jsjjms 2005-05-24
  • 打赏
  • 举报
回复
数据结构是表示 时间复杂度的。

没有写底数,表示是 2(数学中的)
MagicCarmack 2005-05-23
  • 打赏
  • 举报
回复
我这对这个记法感觉到有点问题
nivaini 2005-05-23
  • 打赏
  • 举报
回复
谢谢大家,书上的原文应该是:

T=K*log2(N) 注:2是小2
时间T与以2为底的对数成正比。实际上,由于所有的对数都和其他对数成比例(从底数为2转换到底数为10需乘以3.322),我们可以将这个为常数的底数也并入K.由此不必指定底数:
T = K*log(N)

这是《数据结构》第一章里的一段话,底数到底应该是几呢?
mostideal 2005-05-22
  • 打赏
  • 举报
回复
才不是呢。。是2为底。。
summer54 2005-05-22
  • 打赏
  • 举报
回复
楼上的是T(n) = T(n/2) + O(1) 时间复杂度是O(logn)
nasi00 2005-05-22
  • 打赏
  • 举报
回复
比如一个有序的序列,想从里面二分查找一个元素,那么如果这个序列的元素个数是N的话,理论上只需要进行logN次查找,所以就说二分查找的时间复杂度是O(logN)的了,这里的log的底是2,很容易理解吧
nivaini 2005-05-21
  • 打赏
  • 举报
回复
那意思就是说,没有底数就是用什么底数都行吗?
arrowcy 2005-05-21
  • 打赏
  • 举报
回复
一般情况下logN的复杂度通常都是底数为2,不过不管底数是几都是一样的
dog0883 2005-05-21
  • 打赏
  • 举报
回复
知道这个公式吗:loga(b)=logc(b)/logc(a),loga(b)表示以a为底,这样logc(a)是常数,用什么为底就无所谓了
zhousqy 2005-05-21
  • 打赏
  • 举报
回复
大O记法,算法上表示时间复杂度和空间复杂度的。
llf_hust 2005-05-21
  • 打赏
  • 举报
回复
时间复杂度的表示方法
useresu 2005-05-21
  • 打赏
  • 举报
回复
这一般是用来表示复杂度的吧

叫大O记法

底数是2,

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧