二分查找

Posted 人塞不能怨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找相关的知识,希望对你有一定的参考价值。

二分查找

在查询数组中的元素时,通常会采用遍历的方式去挨个判断元素是否相等。这种查找方式为线性复杂度。在数组元素有序的情况下我们可以采用二分查找的方式来较少比较次数,以提高性能。

算法思路:
1、确定处于中间位置的那个元素
2、比较要查找的元素和处于中间位置的元素的大小
3、如果要查找元素比中间位置元素大则对中间位置右边的元素重复进行步骤1和2,反之则对左边元素重复前两个步骤

代码如下:

char[] cs = 'c','f','h','j','l','x';
System.out.print("请输入要查找的字符:");
Scanner input = new Scanner(System.in);
char find = input.next().charAt(0);
//数组中间元素,第一个元素和最后一个元素的索引
int mid = -1, pb = 0, pe = cs.length() - 1;
boolean exist = false;
while(pb <= pe)
	mid = (pb + pe)/2;
	if(find>cs[mid])
		pb = mid + 1;
	else if(find<cs[mid])
		pe = mid - 1;
	else
		exist = true;
		break;
	

System.out.println(exist ? find + "下标为" + mid : find + "不存在");

以上是关于二分查找的主要内容,如果未能解决你的问题,请参考以下文章

异序二分查找 二分查找方程根 二分查找重复元素最后一个

每周算法小知识之二分查找

查找算法之“二分查找”

java 二分查找法

hiho36 二分·二分查找二分查找

二分查找