java实现的二分查找算法(包含重复数据)

二分查找算法:

  1. 待查找的数组是有序的;
  2. 查找中间数组,为了拆分待查找的数组;
  3. 需要得到起止下标;
  4. 本文采用了递归方法(如果在第一次比较就已经找到了数组,将不需要进行递归);
  5. 递归是为了更快的找到数据;
  6. 程序里面的查分数组,只是逻辑上的查分,实际的输入数组还是完整的,在重复元素问题上,更能体现。
在这里插入代码片

package SearchTest;

import java.util.ArrayList;
import java.util.List;

/**
*

  • @author Administrator

*/
public class BinarySearchTest {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	int[] arr = { 1, 1, 1, 1, 1, 11 };// 有序数列
	List<Integer> tmp = binarysearch2(arr, 0, arr.length - 1, 1);
	System.out.println(tmp);
}

// 编写二分查找方法,采用递归方式,数组中无重复数据的情况下
/**
 * 
 * @param arr查找数组
 * @param left左起始下标值
 * @param right右边结束下标值
 * @param searchVal待查找的数据
 * &#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值