二分法查找(折半查找)
来源:互联网 发布:c语言填空题及答案 编辑:程序博客网 时间:2024/05/11 00:03
二分法查找(折半查找)
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表
优点
- 比较次数少
- 查找数度快
- 平均性能好
缺点
- 待查找表为有序表
- 插入删除困难
算法思想
假定数据是按照从大到小的顺序排列存放在数组中,先将要查找到的值与数组的中点元素(下标为数组长度一半的元素)相比,如果相等,则找到。如果比中点元素小,则要查找的数值只能在中点元素的左边。利用二分法对左边的元素再进行查找。如果比中点元素大,则要查找的数值只能再中点元素的右边。利用二分法对右边元素进行查找。
算法复杂度
时间复杂度
- T(n)=O(logn)
空间复杂度
- S(n)=n
程序实现
下面贴出java的实现代码
int a[]={1,3,5,6,7,8,9,23,34,45,46,67}; int index = -1,left= 0,mid= -1,right; right = a.length-1 ; int num=46; while( left <= right){ mid = (left + right)/2; if(a[mid] == num){ index = mid; break; } else if (a[mid]< num){ left = mid +1; } else if (a[mid]> num){ right = mid -1; } } if (index == -1){ System.out.println("数据不存在"); } else{ System.out.println("数字"+num+"在数组的位置是"+index); }
0 0
- 二分法(折半查找)
- 二分法(折半查找)
- 折半查找(二分法)
- 折半查找(二分法)
- 折半查找(二分法)
- 二分法查找(折半查找)
- 折半查找,二分法查找
- 折半查找(二分法查找)
- 二分法查找(折半查找)
- 二分法查找/折半查找
- 折半查找法(二分法)
- PHP二分法(折半查找)
- 折半查找(二分法 练习)
- java折半查找(二分法)
- 折半查找和递归折半查找详解(二分法查找,递归二分法查找)
- 折半查找法/二分法
- 二分法(折半)查找
- 查找之折半二分法
- Android开发之网络部分
- 计算机等级考试二级C语言(三)搞定C指针
- 【Oracle 11g】梳理下和事务相关的一些概念
- 漫步线性代数十四——正交和子空间
- Linux 下QT开发环境的构造
- 二分法查找(折半查找)
- 跟activity和Task 有关的 Intent启动方式有哪些?
- warning: templates not found /usr/local/git/share/git-core/templates
- 基于redis分布式缓存实现(新浪微博案例)
- Java-HttpClient-EntityUtils获取网络图片
- iOS小记------ iOS 视图控制器在退出的时候没有走dealloc,你需要做的事情
- HDU 4612 Warm up (缩点+树的直径,有重边)
- 坚持#第27天~要懂得去珍惜,即使是好朋友
- Java-HttpClient-03