问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 二分查找法

发布网友 发布时间:2022-04-19 19:43

我来回答

2个回答

热心网友 时间:2023-09-05 09:53

public class BinarySearch {
public static void main(String[] args) {
int[] a = { 2, 4, 6, 9 };
int key = 2;
BinarySearchM(a, key);
System.out.println("The key is in " + BinarySearchM(a, key));
}

public static int BinarySearchM(int[] list, int key) {
int low = 0;
int high = list.length - 1;

while (high >= low) {
int mid = (low + high) / 2;
System.out.println(mid);
if (key < list[mid])//mid 改为 list[mid]
high = mid - 1;
else if (key == list[mid])
return mid;
else
low = mid + 1;
}
return -low - 1;
}
}

热心网友 时间:2023-09-05 09:53

package test;
public class Search {
public Search() {

}
/**
* @param data 从小到大排好序的数组
* @param goal 要查找的数
* @param left
* @param right
* @return 目标数的数组下标,没有找到为-1 ;
*/
public static int find(int[] data,int goal,int left,int right) {
int mid = (left+right)/2 ;
if(left>right) {
return -1 ;
}
if(goal==data[mid]) {
return mid ;
}
else if(goal<data[mid]) {
//注意right = mid -1 ;
return find(data,goal,left,mid-1);
}
else if(goal>data[mid]) {
return find(data,goal,mid+1,right);
}
return -1 ;
}

public static void main(String[] args) {
int[] data = new int[] {1,2,4,6,7};
int result =find(data,6,0,data.length-1) ;
System.out.println(result);
}
}
希望能解决您的问题。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
arrive in和arrive at 有什么区别? 磁力泵为什么可空转? 为什么不让衬氟塑料磁力泵空转?怎样提升设备稳定性? 工业软管泵 塑料磁力泵为什么不能空转 求推荐男主和女配在一起的小说? 《红衣天下》txt全集下载 检测公司检测哪些 检测公司是怎么样的 检测公司属于什么企业 java查找二叉树中的元素以及确定位置 用JAVA写一个完整的折半查找法!!! 用Java实现搜索算法的关键技术是什么呀? java线性查找算法的平均次数为什么是n/2 快速查找算法 具体文字描述 附java程序更好 拜托各... 用java做简单交通查询算法 java 多条件 查询 算法 什么叫java中的二分查找法 java算法有哪些分别 java关键字查询算法 JAVA数组中查找算法中equals和==的问题 JAVA中的查找算法如何实现... 高手帮帮忙 java 线性查找算法 大专英语题库在哪搜 surprise island Lily英文题库答案是什么 百题斩和钉题库两个里面的英语统考题库哪个比较好 怎么用英语介绍猿题库 大学英语六级考试翻译题库 2020年12月大学英语B统考题库? 英语试题!! java版递归算法实现单链表的求长度、查找、替换等操作 JAVA里二分查找法 相关疑问 JAVA 二分算法只能对数字进行查找吗 用java实现,找出分数相同的同学的算法(不考虑去... 微信好友不小心删除了还能找回来吗? vivos1pro是曲屏吗? 能够保终身的医疗保险有哪些? 商业养老保险不是终身 请问商业保险不保终身吗 商业保险包括哪些 如果自己把商业保险已经交满了,那接下来该怎么办? 商业保险二十年保终身是什么意思 商业保险交够20年之后,剩下的利益还保吗? 商业保险中的住院医疗保险有保终身的吗 交20年保终身可靠么 商业保险已经全交满了,后续该怎么处理? 现在商业医疗保险有没有保终身的? 有没有保障终身的医疗保险? 有没有一种保终身的商业医疗保险 商业保险都保什么?