iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >怎么在java中利用二分法寻数组的位置
  • 173
分享到

怎么在java中利用二分法寻数组的位置

2023-06-14 17:06:45 173人浏览 安东尼
摘要

怎么在java中利用二分法寻数组的位置?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,

怎么在java中利用二分法寻数组的位置?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Java的特点有哪些

Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。2.Java具有简单性、面向对象、分布式安全性、平台独立与可移植性、动态性等特点。3.使用Java可以编写桌面应用程序、WEB应用程序、分布式系统和嵌入式系统应用程序等。

1、二分法说明

二分法的核心思想就是索引的移动,查找速度是几何级递增的。

二分查找法,返回查找到数组元素的索引,如果找不到返回-1

2、实例

二分法定位参数值在数组中的位置

场景描述:

根据一个参数值找到它在数组内的下标区间,例如: 2在数组{0,1,3,5}的区间为{1,2}

package com.study.collection; import java.util.Arrays; public class ExampleList<T> {     public static void main(String[] args) {        int[] intArray = {0,1,2,10,15,20,25,29,31,36,39,40,42,43,46,50,55,60,63,66,70};        int num =2;        int[] resultArray = getPostionByTwoPoint(intArray, num);        System.out.println(Arrays.toString(resultArray));    }     private static int[] getPostionByTwoPoint(int[] intArray, int num) {        // 判断        if(intArray == null || intArray.length == 0){            throw new RuntimeException("数组不能为空");        }        // 定义最小和最大区间        if(intArray[0] > num || intArray[intArray.length - 1] < num){            throw new RuntimeException("不在数组范围之内");        }         int middle = 0;        int low = 0;        int high = intArray.length - 1;        // 定义首尾特殊的情况        if(intArray[low] == num){            int[] resultArray = {low, low};            return resultArray;        }else if(intArray[high] == num){            int[] resultArray = {high, high};            return resultArray;        }        int i = 1;        // 数在中间的情况        while(low < high){            System.out.println("查找第 " + i + " 次");            middle = (low + high + 1)/2;            if(intArray[middle] == num){                int[] resultArray = {middle, middle};                return resultArray;            }else if(intArray[middle] > num){                // num 在 low 和 middle 之间                int previous = middle - 1;                if(previous > low  && intArray[previous] < num){                    int[] resultArray = {previous, middle};                    return resultArray;                }                high = middle;            }else if(intArray[middle] < num){                int latter = middle + 1;                if(latter < high  && intArray[latter] > num){                    int[] resultArray = {middle, latter};                    return resultArray;                }                low = middle;            }            i++;        }        throw new RuntimeException("定位异常");    }}

关于怎么在java中利用二分法寻数组的位置问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 怎么在java中利用二分法寻数组的位置

本文链接: https://www.lsjlt.com/news/273423.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在java中利用二分法寻数组的位置
    怎么在java中利用二分法寻数组的位置?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,...
    99+
    2023-06-14
  • 怎么在java中利用递归实现二分查找
    本篇文章给大家分享的是有关怎么在java中利用递归实现二分查找,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、List列表:...
    99+
    2023-06-14
  • 怎么在java中利用流排序数组
    这篇文章给大家介绍怎么在java中利用流排序数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅...
    99+
    2023-06-14
  • 怎么在java中利用二分查找实现迭代
    怎么在java中利用二分查找实现迭代?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统...
    99+
    2023-06-14
  • 怎么利用java实现一个二分法算法
    这篇文章给大家介绍怎么利用java实现一个二分法算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java 二分法算法1、前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序2、原理:将数组分为...
    99+
    2023-05-31
    java 二分法算法 ava
  • 怎么在c语言中使用二分法查找数组中的元素
    今天就跟大家聊聊有关怎么在c语言中使用二分法查找数组中的元素,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。c语言二分法实现查找数组元素的方法:递归算法#include<stdi...
    99+
    2023-06-14
  • 怎么在java中对二维数组赋值
    怎么在java中对二维数组赋值?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对...
    99+
    2023-06-14
  • 利用java 怎么将Map转化为二维数组
    利用java 怎么将Map转化为二维数组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实例代码:import java.util.HashMap; import java.ut...
    99+
    2023-05-31
    java map ava
  • 怎么在Java中初始化二维数组
    今天就跟大家聊聊有关怎么在Java中初始化二维数组,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;...
    99+
    2023-06-14
  • 利用java怎么将二维数组转换为json
    这篇文章将为大家详细讲解有关利用java怎么将二维数组转换为json,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体方法如下:package Tsets;public class erwe...
    99+
    2023-05-31
    java ava json
  • 怎么在java中指定二维数组的长度
    本篇文章给大家分享的是有关怎么在java中指定二维数组的长度,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用...
    99+
    2023-06-14
  • C++中怎么利用LeetCode寻找旋转有序数组的最小值
    这篇文章将为大家详细讲解有关C++中怎么利用LeetCode寻找旋转有序数组的最小值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。[LeetCode] 154. Find Minimum i...
    99+
    2023-06-20
  • 怎么在Java中利用数组模拟循环队列
    怎么在Java中利用数组模拟循环队列?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、...
    99+
    2023-06-14
  • 怎么在CSS中利用选择器分组
    怎么在CSS中利用选择器分组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。选择器分组假设希望 h3 元素和段落都有灰色。为达到这个目的,最容易的做法是使用以下声明:h3, p ...
    99+
    2023-06-08
  • 怎么在Linux中利用shell 获去字符串所在行数及位置
    怎么在Linux中利用shell 获去字符串所在行数及位置?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。01 获取字符串所在的行数方式一:用grep -n[root@roo...
    99+
    2023-06-09
  • 怎么在Java中利用回溯算法解数独
    本篇文章为大家展示了怎么在Java中利用回溯算法解数独,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、题干输入一个9*9二维数组表示数独,已经填入的数字用1-9表示,待填入的数字用0表示,试写一个...
    99+
    2023-06-15
  • 数组中的重复数据怎么利用Java去除
    今天就跟大家聊聊有关数组中的重复数据怎么利用Java去除,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.用List集合实现int[] str = {5, 6, 6, 6, 8, 8...
    99+
    2023-05-31
    java ava
  • PHP中怎么利用key实现二维数组排序
    PHP中怎么利用key实现二维数组排序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHP数组有一维数组和而未数组,我们这里分析一下PHP二维数组排序的技巧。P...
    99+
    2023-06-17
  • c语言在数组中怎么互换元素位置
    在C语言中,可以通过以下方式互换数组中两个元素的位置:1. 使用中间变量进行互换```cvoid swap(int* array, ...
    99+
    2023-10-12
    c语言
  • 怎么在JavaScript中利用map创建数组
    这篇文章将为大家详细讲解有关怎么在JavaScript中利用map创建数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。JavaScript是什么JavaScript是一种直译式的脚本语言,...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作