java中二分查找的总结

菜鸟对BinarySearch(二分查找)的总结:

二分查找一般又被称作折半查找

优点是:查找次数比较少,平均性能好

缺点是:
1.要求被查找的数据为有序数组
2.且插入删除操作困难
适用范围:不经常变动且查找操作频繁的有序数组。

代码实现 binarySearch(int[] x, int n) 其中 x为被查找的有序数组,n为被查找的数,返回的mid=-1的话,当前数组中没有n

public static int binarySearch(int[] x, int n){
	int start = 0;
	int mid = -1;
	int end = x.length - 1;
	while(start <= end){
		mid = (start + end)/2;
		if(x[mid] == n){
			return mid;
		}else if(x[mid] > n){
			end = mid - 1;
		}else if(x[mid] < n){
			start = mid + 1;
		}
	}return mid;
}

现在我们用一个case来测试,如下


public static void main(String[] args) {
			
	int[] nums = {1,2,3,4,5,6,8,11,45,89,102,99,47,66};
	Arrays.sort(nums);
	System.out.println("排后的数组为:");
<span style="white-space:pre">	</span>for(int num : nums)
<span style="white-space:pre">	</span>    System.out.print(num+ " ");	
	//
	int index = binarySearch(nums,47);
	System.out.println("查找到的下标为:"+index);
}
得出的结果为9.
如上就是一个简单的二分查找实现了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值