java写二分查找代码 用java写一个二分查找

二分查找的代码怎么写(其中2种)?【java写二分查找代码 用java写一个二分查找】二分查找是一种在有序数组中查找指定元素的算法,它的基本思想是:每次将查找区间缩小一半,直到找到目标元素或者确定目标元素不存在为止 。
下面是两种写法:
递归版本
def binary_search(array, target, low, high):
if lowhigh:
return -1
mid = (low + high) // 2
if array[mid] == target:
return mid
elif array[mid]target:
return binary_search(array, target, low, mid-1)
else:
return binary_search(array, target, mid+1, high)
# 调用方法
index = binary_search(array, target, 0, len(array)-1)
循环版本
def binary_search(array, target):
low, high = 0, len(array) - 1
while low = high:
mid = (low + high) // 2
if array[mid] == target:
return mid
elif array[mid]target:
high = mid - 1
else:
low = mid + 1
return -1
# 调用方法
index = binary_search(array, target)
在这里,array 是待查找的有序数组,target 是要查找的元素,low 和 high 分别表示查找区间的左右端点 。如果找到了目标元素,函数会返回其在数组中的下标;如果没有找到,函数会返回 -1 。
求一个java的二分查找的程序代码//java写二分查找代码你那程序太难改java写二分查找代码了java写二分查找代码 , 每个方法都单职责啊
public class Test6 {
//二分查找
public static int findPos(int[] a,int key) {
int start=0;
int end=a.length-1;
int temp=0;
while(startend){
int mid=(start+end)/2;
if(keya[mid]){
start=mid+1;
temp=start;
}else if(keya[mid]){
end=mid-1;
temp=end;
}else {
return mid;
}
}
return temp;
}
public static void main(String[] args) {
int[]array={1,4,6,7,10,11,23,78};
System.out.println(findPos(array, 0));
}
}
求一个简单的一维数组二分查找程序代码Javapublic class Test6 {//二分查找public static int findPos(int[] a,int key) {int start=0;int end=a.length-1;int temp=0;while(startend){int mid=(start+end)/2;if(keya[mid]){start=mid+1;temp=start;}else if(keya[mid]){end=mid-1;temp=end;}else {return mid;}}return temp;}public static void main(String[] args) {int[]array={1,4,6,7,10,11,23,78};System.out.println(findPos(array, 0));}}
java写二分查找代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用java写一个二分查找、java写二分查找代码的信息别忘了在本站进行查找喔 。

    推荐阅读