二分查找时间复杂度分析
来源:互联网 发布:openjdk8源码下载 编辑:程序博客网 时间:2024/05/21 12:59
int[] a={1,2,3,3,4,6,7,8}; int key=1,low=0,high=a.length-1; while (low<=high){ int middle=(low+high)/2; if (key==a[middle]){ System.out.println(middle); break; } else if (key>a[middle]){ low=middle+1; }else if (key<a[middle]){ high=middle-1; } }
因为二分查找每次排除掉一半的不适合值,所以对于n个元素的情况:
一次二分剩下:n/2
两次二分剩下:n/2/2 = n/4
。。。
m次二分剩下:n/(2^m)
在最坏情况下是在排除到只剩下最后一个值之后得到结果,所以为
n/(2^m)=1;
2^m=n;
所以时间复杂度为:log2(n)
参考http://www.cnblogs.com/qiaozhoulin/p/5328090.html
阅读全文
1 0
- 二分查找时间复杂度分析
- 二分查找时间复杂度计算与分析
- 二分查找时间复杂度的计算(转)
- 二分查找算法的时间复杂度
- 二分查找的时间复杂度计算
- 二分查找时间复杂度的计算
- “二分查找”算法的时间复杂度
- 二分查找法降低时间复杂度
- 二分查找法时间复杂度计算
- 二分查找以及二分查找的时间复杂度
- 二分查找法的循环与递归实现及时间复杂度分析
- 二分查找算法,斐波那契数列的递归及非递归。(分析时间复杂度及空间复杂度)
- 三分查找的时间复杂度分析
- 快速排序和二分查找时间复杂度详解
- C++ 计算时间复杂度--斐波那契 --二分查找
- 二分查找(时间复杂度为O(logn))
- 分析时间复杂度&空间复杂度,以二分查找和斐波那契数的递归和非递归算法为例
- 构造最优二叉查找树的时间复杂度分析
- Centos安装Hadoop出错
- [Oracle 11g r2(11.2.0.4.0)]案例分析6-丢失磁盘心跳导致的集群重新配置
- 1.选题及计划,3天学会python
- Lucene
- 几款常用的Git 图形化工具
- 二分查找时间复杂度分析
- iOS修改textField的placeholder的字体颜色
- QT整理之HelloWorld测试例子
- 多表查询
- Machine Learning part2---pandas操作
- 学习与oi之间需要一个平衡
- 用数学思维实现雷达分析图
- var_dump 加强打印数量
- Android内存分配/回收的一个问题-为什么内存使用很少的时候也GC