时间复杂度其实就是算法执行完的步骤次数。
二分时间复杂度 log(n)
二分法时间复杂度为什么是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,那么
N/2^x = 1
2^x = N
x=logN
因此二分法的时间复杂度就是O(logN)
二叉树的高度:二叉树的高度是从叶节点开始(其高度为1)自底向上逐层累加的。
二叉树的深度:二叉树的深度是从根节点开始(其深度为1)自顶向下逐层累加的。
- 虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。因此,二叉树的高度和深度不一样。
- 具有n个结点的完全二叉树的深度为「log2n」+1
- 二叉树的高度和深度一样吗 • Worktile社区
二叉树时间复杂度:O(n)
二叉树空间复杂度:
- 二叉树中,空间复杂度主要取决于树的高度和节点数。对于一个有n个节点的二叉树来说,其高度为logn,所以空间复杂度为O(logn)。
- 如果二叉树是满二叉树,即每个节点都有2个子节点,那么空间复杂度是O(n),需要存储所有节点。
LC215 时间复杂度