Java二分查找算法

简介: Java二分查找算法

二分查找算法又叫作折半查找,要求待查找的序列有序,每次查找都取中间位置的值与待查关键字进行比较,如果中间位置的值比待查关键字大,则在序列的左半部分继续执行该查找过程,如果中间位 置的值比待查关键字小,则在序列的右半部分继续执行该查找过程, 直到查找到关键字为止,否则在序列中没有待查关键字。

例:此时有一个数组,[20,55,66,48,45,21,456,112,1,125,234,121,315,12],需要使用二分查找算法,查找值为45的数据项,请用Java实现。

publicstaticintarrayDemo01(int[]array, inta){
intlow=0;
inthigh=array.length;
intmid;
while (low<=high){
mid= (low+high)/2;
if (array[mid] ==a){
returnmid;
        }elseif (a>array[mid]){
low=mid+1;
        }else {
high=mid-1;
        }
    }
return-1;
}

首先定义方法arrayDemo01(),并定义了三个int类型的变量low,mid,high,用于表示二分查找的最小的数据索引,中间的数据索引,最大的数据索引。通过while循环在数组之中查找传入的数据,将最小索引设置未上次循环的中间索引加1,在该数据小于中间的索引时向左查找,即最小索引位置不变,知道中间索引设置未上次循环的中间索引并减1。一种重复如上过程,直至中间索引位置的数据和我们要查找的数据一致,即代表已经找到了要查找的数据,此时将该数据对应的索引返回,如果我遍历low>high还未找到我们要查询的数据,则表示该数据在此列表中不存在,返回-1。

相关文章
|
5天前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
5天前
|
算法
【算法】二分查找——二分查找
【算法】二分查找——二分查找
|
5天前
|
算法
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
|
11天前
|
机器学习/深度学习 人工智能 算法
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
本文全面介绍了人工智能(AI)的基础知识、操作教程、算法实现及其在实际项目中的应用。首先,从AI的概念出发,解释了AI如何使机器具备学习、思考、决策和交流的能力,并列举了日常生活中的常见应用场景,如手机助手、推荐系统、自动驾驶等。接着,详细介绍了AI在提高效率、增强用户体验、促进技术创新和解决复杂问题等方面的显著作用,同时展望了AI的未来发展趋势,包括自我学习能力的提升、人机协作的增强、伦理法规的完善以及行业垂直化应用的拓展等...
95 3
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
|
3天前
|
存储 算法 Java
深入算法基础二分查找数组
文章深入学习了二分查找算法的基础,通过实战例子详细解释了算法的逻辑流程,强调了确定合法搜索边界的重要性,并提供了Java语言的代码实现。
深入算法基础二分查找数组
|
10天前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
27 6
|
10天前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
29 2
|
10天前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
25 1
|
10天前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
22 1
|
21天前
|
算法 Java
Java语言实现最短路径算法(Shortest Path)
Java语言实现最短路径算法(Shortest Path)
34 3

热门文章

最新文章