源作者:程序员zhenguo
一个运用二分查找算法的程序时间复杂度是承接上一篇:程序员必知的算法和数据结构:从猜数字游戏引入二分查找
3 分析二分查找
3.1 时间复杂度
在上面这个猜谜游戏中,使用了二分查找,因为没迭代一次,求解区间减为原来一半,因此二分查找的时间复杂度为 lgn.
3.2 二分查找退化为线性搜索
如果我们不采取上面的猜数字策略,依次1,2,3,...n-1,直到命中数字,这就是 brute-force 暴力算法,此时的时间复杂度为 n.
一个月用二分查找算法的程序的时间复杂度是3.3 二进制表示
某个数转化为二进制表示(代码见下)的过程与二分查找很相似,例如,神秘数为77,然后猜题的回答为:no yes yes no no yes no ,则二进制表示为 1001101,二进制表示恰好为 77.
回复cs224 获取NLP和深度学习资料
回复alg,获取相关算法