算法复杂度中的O(logN)底数是多少
前言
无论是计算机算法概论、还是数据结构书中,关于算法的时间复杂度很多都用包含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口(这种就是交换机模式),那么就相当于这个楼层每个房间都有一个通向外面的楼梯口。
- 点赞
- 收藏
- 关注作者
评论(0)