个人随笔
目录
二分法时间复杂度为什么是logN解析。
2020-02-16 23:15:13

有一种叫做二分法的查找方法,然后大家都知道它的时间复杂度就是logN(这里省略了底数2),我们知道时间复杂度其实就是算法执行完的步骤次数,那么logN怎么来的呢。

我们知道二分法就是把一个数据规模为N的先分为N/2,然后再分为N/4,N/8,N/16…一直等分到N/y =1的时候就不分了,现在我们来考虑下,到底分多少次才能把规模为N的数据分到结果为1,这里假设为x次,这个x就是次数,也是我们用大O表示法表示的时间复杂度,我们只需要把x取到就可以了。

这里按我们的数学思维把规律列举一下。

次数 结果 规律
1 N/2 N/2^1
2 N/4 N/2^2
3 N/6 N/2^3
4 N/16 N/2^4

我们很明显一眼就可以看出,假如x次后结果为1,那么

  1. N/2^x = 1
  2. 2^x = N
  3. x=logN

因此二分法的时间复杂度就是O(logN),是不是超级简单的。

 4742

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2