算法复杂度中的O(logN)底数是多少

举报
SHQ5785 发表于 2024/06/12 14:41:18 2024/06/12
【摘要】 前言     无论是计算机算法概论、还是数据结构书中,关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少。算法中log级别的时间复杂度都是由于使用了分治思想,这个底数直接由分治的复杂度决定。如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。     不过无论底数是什么,log级别的渐进意义是一样的。也就是说该算法的时间复杂度的...

前言

     无论是计算机算法概论、还是数据结构书中,关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少。算法中log级别的时间复杂度都是由于使用了分治思想,这个底数直接由分治的复杂度决定。如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。

     不过无论底数是什么,log级别的渐进意义是一样的。也就是说该算法的时间复杂度的增长与处理数据多少的增长的关系是一样的。

     我们先考虑O(logx(n))和O(logy(n)),x!=y,我们是在考虑n趋于无穷的情况。求当n趋于无穷大时logx(n)/logy(n)的极限可以发现,极限等于lny/lnx,也就是一个常数,也就是说,在n趋于无穷大的时候,这两个东西仅差一个常数。所以从研究算法的角度log的底数不重要。最后,结合上面,我也说一下关于大O的定义(算法导论28页的定义),注意把这个定义和高等数学中的极限部分做比较,显然可以发现,这里的定义正是体现了一个极限的思想,假设我们将n0取一个非常大的数字,显然,当n大于n0的时候,我们可以发现任意底数的一个对数函数其实都相差一个常数倍而已。所以书上说写的O(logn)已经可以表达所有底数的对数了,就像O(n^2)一样。没有非常严格的证明,不过我觉得这样说比较好理解,如果有兴趣证明,完全可以参照高数上对极限趋于无穷的证明。

网络小白之WAN与LAN的区别

基本作用

wan接口是外网接口,是用来连接互联网或局域网等外部网络的。

lan接口是内网接口,是用来连接计算机终端或其他路由器等终端设备的。

举例

wan口和lan口的关系,好比宾馆一个楼层有许多房间,wan口是楼梯口,客人都必须从wan口进入这个楼层的各房间,反之,都得从楼梯口出去。各房间之间的交流就是lan口,可以互相走动。房间号就是内网ip,如果外线插在wan口,内线插在lan口,那么就是上面这种情况。(这种就是路由模式)

如果外线和内线都插在lan口(这种就是交换机模式),那么就相当于这个楼层每个房间都有一个通向外面的楼梯口。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。