java 算法二分查找和折半查找

发布时间 - 2026-01-11 01:11:34    点击率:

 java 算法二分查找与折半查找

折半查找 :首先数组是已经排好序的

实例代码:

package com.hao.myrxjava;

/**
 * 折半查找 :首先数组是已经排好序的
 *
 * @author zhanghaohao
 * @date 2017/5/15
 */

public class HalfDivision {

  /**
   * 循环实现
   *
   * @param array 排好序的数组
   * @param value 查找的值
   * @return value在array的位置
   */
  public static int halfDivision(int value, int[] array) {
    if (array == null || array.length == 0)
      throw new NullPointerException("array is null");
    int low = 0;
    int high = array.length - 1;
    int mid = (low+high)/2;
    while (array[mid] != value) {
      if (array[mid] > value)
        high = mid - 1;
      else
        low = mid + 1;
      if (low > high)
        return -1;
      mid = (low+high)/2;
      if (array[mid] == value)
        return mid;
    }
    return mid;
  }

  /**
   * 递归实现
   *
   * @param array 排好序的数组
   * @param value 查找的值
   * @param low 查找的起始位置
   * @param high 查找的末尾位置
   * @return value在array的位置
   */
  public static int halfDivision(int value, int[] array, int low, int high) {
    if (low > high)
      return -1;
    int mid = (low + high) / 2;
    if (array[mid] == value)
      return mid;
    else if (array[mid] > value)
      return halfDivision(value, array, low, mid - 1);
    else if (array[mid] < value)
      return halfDivision(value, array, mid+1, high);
    return -1;
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 算法二分查找与折半查找  # 二分查找  # 折半查找  # Java经典排序算法之二分插入排序详解  # Java实现二分查找算法实例分析  # java算法之二分查找法的实例详解  # 一文详解Java二分查找算法  # Java二分查找算法实现代码实例  # java 二分法算法的实例  # Java 二分法检索算法代码实现详解  # Java 二分查找算法的实现  # Java二分查找算法实例详解  # Java二分算法题目练习实战教程  # 递归  # 希望能  # 谢谢大家  # author  # myrxjava  # hao  # zhanghaohao  # date  # package  # nbsp  # strong  # 排好序  # brush  # class  # pre  # public  # NullPointerException  # throw  # length 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  JavaScript中的标签模板是什么_它如何扩展字符串功能  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何快速查询网站的真实建站时间?  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何用搬瓦工VPS快速搭建个人网站?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  如何为不同团队 ID 动态生成多个非值班状态按钮  如何在IIS7中新建站点?详细步骤解析  如何在万网利用已有域名快速建站?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  如何选择PHP开源工具快速搭建网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  微信公众帐号开发教程之图文消息全攻略  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何在腾讯云服务器快速搭建个人网站?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何快速搭建支持数据库操作的智能建站平台?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  b2c电商网站制作流程,b2c水平综合的电商平台?  用yum安装MySQLdb模块的步骤方法  Laravel中的withCount方法怎么高效统计关联模型数量  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  微信小程序 scroll-view组件实现列表页实例代码  如何获取上海专业网站定制建站电话?  微信小程序 input输入框控件详解及实例(多种示例)  如何在香港免费服务器上快速搭建网站?  Laravel如何使用Telescope进行调试?(安装和使用教程)  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  香港服务器租用每月最低只需15元?  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何在自有机房高效搭建专业网站?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何在香港服务器上快速搭建免备案网站?  如何安全更换建站之星模板并保留数据?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  IOS倒计时设置UIButton标题title的抖动问题  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  微信小程序制作网站有哪些,微信小程序需要做网站吗?