C++折半搜查次数题

img


log2n用数学发号表示怎么算?看c++很多类似这样的公式,放在眼前不知道怎么算

以2为底n的对数。
设这个数是x,那么就是2的x次方=n。
x就表示为log2n。

假设这里n是8,那么x就是log2 8.,也就是3
假设这里n是16,那么x就是log2 16, 也就是4
如果这里n是7,那么x就是log2 7,
这里的意思就是2的log2 7次方是7.

补充:以10为底和以e为底的对数比较特殊你可以看看,数学书上也有的。

啥意思?没看懂

折半查找可以看成一个二叉树搜索过程,无非就是大于就查右树,小于就查左树,那么这颗二叉树的叶节点就是数据规模N,查找次数就是这颗树的深度,对于有N个叶节点的搜索二叉树,深度是LOG2(N),也就是时间复杂度是log2(n)