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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年05月02日 13时46分52秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
COMP7404 Machine Learing——KNN
2019-04-30
COMP7404 Machine Learing——SVM
2019-04-30
COMP7404 Machine Learing——ROC
2019-04-30
COMP7404 Machine Learing——Ensemble Learning& MajorityVoteClassifier & Bagging & Boosting(Adaboost)
2019-04-30
Pylearn2
2019-04-30
Cassandra——docker
2019-04-30
CQL命令
2019-04-30
Cassandra的Allow Filtering
2019-04-30
UWB定位
2019-04-30
Weka(三)——Association and Clustering
2019-04-30
PCD(点云数据)文件格式 & pcd文件的读取与写入
2019-04-30
读取点云pcd文件转化为numpy array & 可视化(python pcl)
2019-04-30
Cloudera Quickstart(docker)
2019-04-30
docker share共享 windows本地文件夹
2019-04-30
HOG 方向梯度直方图特征
2019-04-30
点云分割之圆柱体分割
2019-04-30