折半查找

原创 2008年09月30日 20:49:00
import java.util.Arrays;
import java.util.Random;

public class BinSearch {

	public static int search(int key, int[] a) {
		return search(key, a, 0, a.length);
	}

	private static int search(int key, int[] a, int left, int right) {
		while (left <= right) {
			final int mid = (left + right) >>> 1;
			if (a[mid] > key) {
				right = mid - 1;
			} else if (a[mid] < key) {
				left = mid + 1;
			} else {
				return mid;
			}
		}
		return -1;
	}

	public static void main(String[] args) {
		final int key = 6;
		final int N = 10;
		int[] a = new int[N];
		Random random = new Random();
		for (int i = 0; i < a.length; i++) {
			a[i] = random.nextInt(N << 1);
		}
		Arrays.sort(a);
		System.out.println(Arrays.toString(a));
		System.out.println(search(key, a));
		System.out.println(Arrays.binarySearch(a, key));
	}
}


关于折半查找算法

二月底的末唤来了阳春三月的暖,天清气朗,惠风和煦,有时候真想拿着以前放的风筝,冲出去体验一把田野奔跑的欢乐。但也只是想想而已,越来越宅的我始终也离不开手中的笔记本电脑了。 也不知道是气温上升的缘故还...
  • W_Honor
  • W_Honor
  • 2016年03月01日 12:28
  • 892

数据结构例程——线性表的折半查找

本文是[数据结构基础系列(8):查找]中第3课时[线性表的折半查找]的例程。 折半查找 #include #define MAXL 100 typedef int KeyType; typedef ...
  • sxhelijian
  • sxhelijian
  • 2015年11月19日 18:57
  • 3849

算法学习之折半查找

二分查找又称折半查找  优点:  比较次数少,查找速度快,平均性能好  缺点:  要求待查表为有序表,且插入删除困难。  因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 折半...
  • Oliver__Lau
  • Oliver__Lau
  • 2016年08月10日 09:50
  • 298

C++实现有序表折半查找

1>算法思想: 折半查找(Binary Search)的查找过程是:先确定等查记录所在范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。 2>算法 3>算法实现 #include using...
  • cxc19890214
  • cxc19890214
  • 2015年05月12日 10:10
  • 2884

C++ 折半查找

C++ 折半查找       注意代码细节!!!!!!!!! #include #include #include using namespace std; #define MaxNum 100 ...
  • Crazy_For_Net
  • Crazy_For_Net
  • 2016年06月17日 00:55
  • 536

折半查找判定数及平均查找长度

折半查找判定数及平均查找长度 折半查找的过程看,可用二叉树来描述,二叉树中的每个结点对应有序表中的一个记录,结点中的值为该记录在表中的位置。通常称这个描述折半查找二叉树的过程称为折半查找判定树。 ...
  • zhupengqq
  • zhupengqq
  • 2016年07月06日 13:28
  • 9896

【数据结构】折半查找

数据结构 折半查找 /* 名称:折半查找 语言:数据结构C语言版 编译环境:VC++ 6.0 日期: 2014-3-26 */ #include #include #in...
  • u010870518
  • u010870518
  • 2014年03月26日 13:05
  • 22067

Python一日一练16----折半查找

介绍二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,...
  • a359680405
  • a359680405
  • 2016年04月14日 10:52
  • 1264

二分查找(折半查找) -- 已排序序列的查找算法

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。二分查找思想首先,假设表中元素是...
  • y396397735
  • y396397735
  • 2016年05月16日 10:04
  • 922

顺序查找 折半查找 二叉排序树

1.顺序查找,折半查找,二叉排序树操作定义 SeqSearch.h #include #define ARRAYLEN 8 int source[]={69, 65, 90, 37, 92, 6...
  • niuyisheng
  • niuyisheng
  • 2013年07月18日 21:13
  • 1513
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:折半查找
举报原因:
原因补充:

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