二分查找简单算法java_Java—简单二分查找

在介绍二分查找法之前,我们现在简述一个例子;随机有1~100个数字,并且是有序的,让你猜测其中一个数字,对于猜测的数字我们会有三种答案,分别是:大了,小了,相等。假如我们用一种最基本的for循环遍历的方法进行一一比较的话,假如这个数字在开始的位置还好,如果这个数字在最后的位置呢?那么就要用到这个二分查找的方法,举个栗子,假如我们要查找51这个数字,用普通的遍历进行查找的话,我们需要第51次才能找到这个值,但是我们用二分法的话,我们可以最少用两次的方法就可以把这个值找到,说的明确点就是,减少了查询的时间,在数据量特别的大的有序情况下,二分查找是一个很好的选择。废话不多少了,上demo:

public static void twoFind(int d,int[] g) {//d:要查询的值;g待查询的数组

int end = g.length-1;

int first = 0;

int c = (g.length-1)/2;

while(true) {

if(g[c] == d) {

System.out.println(c + ""+g[c]);

return;

}

if(first > end) {

System.out.println("无值");

return;

}

if(d > g[c]) {

c = end -1;//要查询的值在后半部分

}else {

c = first +1;//要查询的值在前半部分

}

}

}

对于一个有序的数据序列,二查找的方法不仅仅可以用于查找数据,也可以用于删除,插入数据,那样的话最好不要用数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值