【详解】二分查找改良版(内含java实现)

点击本链接先学习二分查找基础版

二分查找改良版算法思想

在这里插入图片描述

算法实现

public static int binarySearchBalance(int a[],int target) {

        int i=0,j=a.length;

        while(j-i>1) {
            int m=(i+j)>>>1;
            if(target<a[m]) {
                j=m;
            }
            else {      //包括a[m]<target和a[m]=target
                i=m;    //所以m不可以被排除了,i不能等于m+1
            }
        }
        if(a[i]==target){
            return i;
        }
        return -1;
    }

优缺点

优点:比较次数减少
缺点:无论目标值在数组的什么位置,循环的次数都不变,会一直运行直到j-i>1,即只剩余i这个位置的值有效之后退出

和之前的方法对比

为什么三种方法的循环条件不同

  • i和j都有效时,需要j>i退出循环,即已经没有任何有效的值,i=j时还有一个有效值
  • i有效,j无效时,需要j>=i退出循环
  • i有效,j无效但平衡版,需要留存一个有效值用于退出循环后和target比较,所以j-i>1,留出a[i]这个有效值
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java实现OPC UA的步骤如下: 第一步,首先需要引入OPC UA的Java开发库。目前市场上有很多供应商提供的OPC UA开发库,选择适合自己的库进行引用。这些库通常包含了OPC UA的客户端和服务器代码。 第二步,编写OPC UA客户端代码。OPC UA客户端主要用于与OPC UA服务器进行通信。通过在Java程序中引入OPC UA库提供的相关类和接口,可以创建一个OPC UA客户端实例。然后,通过该实例可以实现与服务器的连接、节点浏览、读写数据等功能。 第三步,编写OPC UA服务器代码。OPC UA服务器主要用于提供OPC UA服务,允许客户端与其进行通信。类似地,通过引入OPC UA库提供的相关类和接口,可以创建一个OPC UA服务器实例。然后,可以定义自己的节点和数据模型,并实现相应的方法用于处理客户端请求。 第四步,配置OPC UA服务器。将OPC UA服务器配置为可以被客户端访问,可以通过修改配置文件或者在代码中设置服务器的IP地址和端口号来实现。 第五步,测试和调试。在完成客户端和服务器的编写后,可以通过启动客户端和服务器来对其进行测试和调试。通过客户端可以访问服务器的节点并读写数据,通过服务器可以查看客户端请求并进行相应的响应。 总结起来,Java实现OPC UA的过程涉及到引入OPC UA库、编写客户端和服务器代码、配置服务器以及测试和调试。通过这些步骤,可以实现Java程序与OPC UA服务器的交互,实现数据的读写和通信。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值