java实现二分法的完整代码

要实现二分法,需要定义一个函数,函数需要传入三个参数:要查找的数组、要查找的数和数组范围的起点和终点。

下面是标准的Java实现二分法的完整代码示例:

public static int binarySearch(int[] nums, int target, int left, int right) { 
    while (left <= right) { 
        int mid = left + (right - left) / 2; 
        if (nums[mid] == target) { 
            return mid; 
        } else if (nums[mid] < target) { 
            left = mid + 1; 
        } else { 
            right = mid - 1; 
        } 
    } 
    return -1; 
} 

现在,让我们通过两个示例来说明如何实用这段代码:

示例一:查找有序数组中是否包含数值10

int[] nums = new int[] {1, 3, 5, 7, 9, 11, 13}; 
int target = 10; 
int index = binarySearch(nums, target, 0, nums.length - 1); 
if (index != -1) { 
    System.out.println("数组包含数值 " + target + ",其下标为 " + index); 
} else { 
    System.out.println("数组不包含数值 " + target); 
}

示例二:查找有序数组中是否包含多个数值

int[] nums = new int[] {1, 3, 5, 7, 9, 11, 13, 15, 17}; 
int[] targets = new int[] {1, 13, 15}; 
for (int target : targets) { 
    int index = binarySearch(nums, target, 0, nums.length - 1); 
    if (index != -1) { 
        System.out.println("数组包含数值 " + target + ",其下标为 " + index); 
    } else { 
        System.out.println("数组不包含数值 " + target); 
    } 
}

通过以上两个示例,可以清楚地了解如何使用Java实现二分法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现二分法的完整代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Mybatis 动态sql if 判读条件等于一个数字的案例

    下面是详细讲解”Mybatis 动态sql if 条件等于一个数字的攻略”。 1. 前置知识 在讲解之前,需提前了解以下基本知识: Mybatis 基本使用方法 Mybatis 动态 SQL 2. 问题描述 有一个需求,我们需要在 Mybatis 中实现一个动态 SQL 查询,根据传入的参数判断查询条件是否等于一个固定的数字。 3. 解决方案 我们可以使用 …

    Java 2023年6月15日
    00
  • java实现日历窗口小程序

    Java实现日历窗口小程序攻略 1. 实现思路 要实现一个日历窗口小程序,可以考虑以下几个步骤: 创建一个Swing界面,显示当前日期以及日历窗口。 在日历窗口中显示当前月份的日历。 提供按钮或其他交互方式,让用户可以切换月份,也可以选择某一天进行其他操作。 2. 示例1:显示当前月份的日历 下面是一个简单的实现示例,可以通过一个二维数组表示一个月份的日历:…

    Java 2023年5月20日
    00
  • Java Spring的使用注解开发详解

    Java Spring的使用注解开发详解 Java Spring是一个开源框架,它帮助Java开发人员开发企业级应用程序。Spring框架有多种模块,其中最流行的是Spring Core,它是Spring框架的核心部分,提供了依赖注入(DI)和面向切面编程(AOP)等重要功能。本文将详细讲解如何使用注解开发Java Spring应用程序。 环境准备 在开始使…

    Java 2023年5月19日
    00
  • JsonFormat与@DateTimeFormat注解实例解析

    JsonFormat与@DateTimeFormat注解实例解析 在Java中,我们经常需要将日期和时间格式化为特定的格式。为了实现这个目的,我们可以使用@JsonFormat和@DateTimeFormat注解。在本文中,我们将详细讲解这两个注解的用法,并提供两个示例来说明这个过程。 JsonFormat注解 @JsonFormat注解用于指定日期和时间的…

    Java 2023年5月18日
    00
  • Java如何利用Mybatis进行数据权限控制详解

    Java如何利用Mybatis进行数据权限控制详解 什么是数据权限控制 数据权限控制是指通过安全管理机制,对不同用户或用户组授权不同的数据操作权限,从而控制这些用户或用户组在访问企业数据资源时的范围和强度。 Mybatis数据权限控制的实现过程 首先,在Mybatis中配置Interceptor拦截器来实现数据权限控制,Interceptor是用来拦截SQL…

    Java 2023年5月20日
    00
  • 从云数据迁移服务看MySQL大表抽取模式的原理解析

    从云数据迁移服务看MySQL大表抽取模式的原理解析 前言 MySQL是目前互联网应用中广泛使用的关系型数据库之一,但是在处理大量数据时,由于MySQL存储引擎特性和限制导致单表数据量的限制相对较小。为了解决这个问题,可以采用大表抽取的方式,将数据按照一定的规则划分成小批量进行处理。本文从云数据迁移服务角度,结合大表抽取进行原理解析。 什么是云数据迁移服务? …

    Java 2023年6月16日
    00
  • SpringBoot+slf4j实现全链路调用日志跟踪的方法(一)

    SpringBoot+slf4j实现全链路调用日志跟踪的方法(一) 在分布式系统中,日志跟踪是非常重要的,它可以帮助我们快速定位问题,提高系统的可维护性和可靠性。本文将详细讲解如何使用SpringBoot和slf4j实现全链路调用日志跟踪,包括以下内容: 日志跟踪的基本概念 SpringBoot中的日志跟踪实现方法 示例一:使用MDC实现日志跟踪 示例二:使…

    Java 2023年5月15日
    00
  • jsp实现textarea中的文字保存换行空格存到数据库的方法

    首先,需要使用Java后端编写一个SaveTextServlet,该Servlet接收来自前端页面的POST请求,将textarea中的文字保存到数据库中。 1.前端页面代码示例: <form action="SaveTextServlet" method="post"> <textarea name…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部