二分法查找

原创 2016年08月29日 18:37:02


                                               二分法查找

(一)   二分法查找又叫折半查找,对于已经按从小到大排好序的数组a[],当要查找某个元素b的时候,先计算(a.length - 1)/2 把该位置上的元素与b比较,如果b比a[(a.length - 1)/2]小,则在a[(a.length - 1)/2]的左边区间找。这是再算出左边区间的中间下标,又把该位置上的元素与b比较,依次类推。



比如数组int  a[] = {2,11,15,19,30,32,61,72,88,90,96}现在要用二分法查找15

步骤如下,(a.length - 1)/2  = 5 ,a[5]= 32. 15< 32,所以在左区间找。 这时候{(a.length - 1)/2}/2 = 2

                  a[2]= 15,刚好 就找到了


代码如下:

public class ErFenFaSearch {
	public static void main (String args[]){
		int  a[] = {2,11,15,19,30,32,61,72,88,90,96};
		search(a, 0, a.length - 1, 30);
	}
	
	public static int search(int s[],int low ,int high,int value){
		 int mid;
		
		while(low < high){
			mid = (low + high)/2;
			if(value == s[mid]){
				System.out.print(mid);
				return  mid ;
			}
			else if(value< s[mid]){
				high = mid;
			}
			else if(value > s[mid]){
				low  =  mid;
			}
			}
		System.out.print(-1);
		return  -1;
		
	}

算法学习之二分法查找

二分法又称折半查找,故名思意就是就是从中间开始比较查找,其基本思路是:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在...
  • richardli1228
  • richardli1228
  • 2016年01月22日 15:25
  • 2161

使用二分法查找数组中的元素

上次写了几篇排序的博客,今天写一下查找
  • u010105970
  • u010105970
  • 2014年05月10日 09:22
  • 2764

数据结构基础_二分法查找

公共引用头文件common.h   #include #include /** * * @param p 待申请内存的指针 * @param s 申请内存大小 */...
  • yeahwell
  • yeahwell
  • 2013年04月12日 19:50
  • 1774

C#实现二分法查找算法

定义 在计算机科学中,二分法查找(binary search)也叫折半查找(half-interval search),又叫对数搜索(logarithmic search)。这是一种在有序数组中...
  • lxt610
  • lxt610
  • 2017年05月07日 22:09
  • 1384

查找与排序之二分法查找篇(C语言实现)

相比线性查找,二分法查找则显得十分高效,其查找次数与总元素数量存在对数关系,即只要较少的查找次数就可以完成快速地搜索。下面实现二分法查找: 原理:在进行二分法查找前需要先对数据进行排序(具体排序实现...
  • u011506583
  • u011506583
  • 2016年03月21日 20:59
  • 17158

php常见的几种排序以及二分法查找

//插入排序 function insertSort($arr){ $count=count($arr); for($i=1;$i $tem=$arr[$i]; $j=$i-1; whil...
  • huangjianxiang1875
  • huangjianxiang1875
  • 2014年07月04日 00:39
  • 4274

c++实现二分法查找

二分查找也属于顺序表查找范围,二分查找也称为折半查找。二分查找(有序)的时间复杂度为O(LogN)。 那么什么是二分查找呢?二分查找的基本思想是, 在有序表中,取中间记录作为比较对象,若给定值与...
  • jx232515
  • jx232515
  • 2016年05月28日 16:02
  • 1720

二分法查找(折半查找)算法学习笔记

小生学习C语言时整理的一些学习笔记及心得体会.
  • Sufeiboy
  • Sufeiboy
  • 2017年01月13日 06:07
  • 1430

用c语言实现二分法查找表格【数据结构】

既然是头一回写博客就允许我小小的多扯一会吧~之所以想要写博客并非是想要炫耀什么,其实鄙人从小就是一个不会表达的理科狗,因此现在重拾“笔杆”来这里敲代码主要原因很简单,就是想通过这样一个平台把自己平日里...
  • turbo_mars_yang
  • turbo_mars_yang
  • 2015年11月25日 21:24
  • 1697

算法之二分法查找

二分法检索(binary search)又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组(array)中, 首先将给定值key与字典中间位置上元素的关键码(key)比较,如...
  • huangjuani
  • huangjuani
  • 2015年06月17日 09:04
  • 9286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二分法查找
举报原因:
原因补充:

(最多只允许输入30个字)