博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构与算法分析——二分法查找
阅读量:1953 次
发布时间:2019-04-27

本文共 1023 字,大约阅读时间需要 3 分钟。


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

原理分析

现存一个有序数组{ 2, 5, 8, 12, 16, 23, 38, 56, 72, 91 },请利用二分法查找出元素23所对应的下标index。

前提条件

二分查找的前提是数组中的元素是有序的,否则无法查找。

查找原理

第一步:

确定整个数组的最大下标、最小下标、中间下标

第二步:

将目标值与最大下标所对应的值、最小下标所对应的值、中间下标所对应的值相比较

第三步:

调整最大下标、最小下标、中间下标

查找流程

在这里插入图片描述

代码实现

二分法查找的代码实现如下:

package com.algorithm;/** * 本文作者:谷哥的小弟  * 博客地址:http://blog.csdn.net/lfdfhl * */public class BinarySearch {
public static void main(String[] args) {
int[] intArray = {
2, 5, 8, 12, 16, 23, 38, 56, 72, 91 }; int index = binarySearch(intArray, 23); System.out.println(index); } public static int binarySearch(int[] intArray, int value) {
int max = intArray.length - 1; int min = 0; int mid = (max + min) / 2; while (intArray[mid] != value) {
if (min <= max) {
if (intArray[mid] > value) {
max = mid - 1; } else if (intArray[mid] < value) {
min = mid + 1; } mid = (max + min) / 2; } else {
System.out.println("未查询到相应数据"); mid = -1; break; } } return mid; }}

运行结果

在这里插入图片描述

你可能感兴趣的文章
spring声明式事务需要配置事务属性tx:method
查看>>
jsp中的base标签
查看>>
spring异常处理机制
查看>>
spring基于注解的测试IOC容器对象
查看>>
spring-session实现session共享
查看>>
oracle查询锁表SQL
查看>>
阿里支付宝demo
查看>>
设置feign配置日志级别
查看>>
zeebe工作流学习总结
查看>>
spring gateway自定义过滤器
查看>>
docker安装的rabbitmq无法访问问题
查看>>
rabbitMq集群搭建及nginx负载均衡
查看>>
搭建zookeeper集群,一主两从
查看>>
Tengine服务器搭建
查看>>
密码学基础(一)
查看>>
portainer的安装
查看>>
密码基础之加密模式和填充模式
查看>>
JDK自带数字摘要接口API
查看>>
mysql之load data into file语法
查看>>
无外网情况安装docker,并导入镜像
查看>>