二分查找的实现---java版本

本文介绍了一种高效的搜索算法——二分查找法,并通过具体示例演示了其工作原理及应用过程。文章强调该算法适用于已排序数组,具有较高的查找效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * @author Administrator
 *二分查找法:
 *		特点:
 *			1.该数组是已经排好序的
 *			2.效率还是比较高的
 */
public class BinSearch {
	
	//{2,3,4,5,7} 6
	public static int binSearch(int [] arr ,int key){
		int start =0;
		int end =arr.length-1;
		int mid=(start+end)/2;
		while(start<=end){
			if(arr[mid]<key){
				start=mid+1;
				mid=(start+end)/2;
			}
			if(arr[mid]>key){
				end=mid-1;
				mid=(start+end)/2;
			}
			if(arr[mid]==key){
				return mid;
			}
		}
		//执行完后依然没有跳出,则说明该数组中不包含该key
		return -1;
	}
	//测试二分查找
	public static void main(String[] args) {
		int [] arr={2,3,4,5,7};
		System.out.println("该数组中是10的位置:"+BinSearch.binSearch(arr, 10));
		System.out.println("该数组中是5的位置:"+BinSearch.binSearch(arr, 5));
	}
}
输出结果:
	该数组中是10的位置:-1
	该数组中是5的位置:3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值