二分查找
来源:互联网 发布:淘宝店推广软文 编辑:程序博客网 时间:2024/06/10 09:39
What?
二分查找:又被成为折半查找。前提条件就是元素是排好序的,其次通过比较中间值,让所要找的KeyValue值与中间值进行对比,然后再进行折中的查找,直到找到所要找的元素位置或者找到此表不存在位置,这时候就代表这个数组中不存在次元素。
How?
我们来看一下下面的图:(要找的值是10)
解释说明:
以上是二分查找的思路,我们来看一下他的代码片段。
代码区:
<span style="font-size:18px;">/*作者:雪时间:2015年5月13号功能:二分查找思路:1.折半查找的前提就是有序数组 2.折半查找就是讲一个数组去min和max下角标,然后将要查找的数从中间的数进行对比3.如果大于中间的数就从后一半的中间开始查找,这样一半一半的进行查找步骤:1.写一个关于折半查找的方法2.变量需要:min max mid 3.传进来的数据和数组中的中间的元素进行对比,4.返回所在的下角标*/public class binsearch{public static void main(String[] args){int arry[]={1,3,5,7,8,9};int mid=binSearch_1(arry,2);System.out.println(mid);}public static int binSearch_1(int arry[],int search){//这个方法一共两个结果,要么就是min=max返回mid;要么就是返回-1值int min=0;int max=arry.length-1;int mid;while(min<=max){//讲这句话写在循环中一下的几句判断就可以不用谢了mid=(min+max)/2;//if(arry[mid]==search)//{//mid=mid;//mid=(min+max)/2;//} if(arry[mid]>search){max=mid-1; // mid=(min+max)/2;}else if(arry[mid]<search){min=mid+1;}else{//折半查找如果找到的话肯定就是一个中间值,//肯定是min=max,所以不管怎么循环,最终找//到结果的肯定是mid==max这个条件return mid;}}return -1;}}</span>只要是了解了他的思路就不难实现。
Why?
使用二分查找的好处就是,方便快捷,效率高,比较次数少,平均性能好,但是查找的前提是,在有序序列的情况下,这个条件也是使用二分查找的一个限制条件。同时插入也是比较困难的
总结:
笔墨纸砚文房四宝,同样的做编程不仅仅是需要在电脑上敲代码,而且还需要,在我们找不到方向的时候,拿起笔和纸画画,写写思路,这也是很重要的。
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- HDU ACM 1392 Surround the Trees->凸包
- 2015年移动金融应用行业报告
- 歪解Activity生命周期-----初学者彻底理解指南
- Leetcode[1]-Two Sum
- org.tinygroup.htmlparser-Html解析器
- 二分查找
- oracle 数据库 表空间创建 用户创建 用户授权
- org.tinygroup.application-应用启动框架
- Mybatis学习(6)动态sql语句
- centOs6.5_ftp服务器搭建vsftpd
- SVN客户端安装
- org.tinygroup.beancontainer-IOC、AOP框架
- eclipse http://localhost:8080/出现404问题
- POJ1125 -- Floyed算法