Java数据结构与算法分析——二分法查找
发布日期:2021-06-30 11:12:41 浏览次数:3 分类:技术文章

本文共 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; }}

运行结果

在这里插入图片描述

转载地址:https://it9527.blog.csdn.net/article/details/109322224 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java数据结构与算法分析——求两个字符的最大子串
下一篇:Java数据结构与算法分析——简单选择排序

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年05月02日 13时46分52秒