正文
java写二分查找代码 用java写一个二分查找
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
二分查找的代码怎么写(其中2种)?
二分查找是一种在有序数组中查找指定元素的算法,它的基本思想是:每次将查找区间缩小一半,直到找到目标元素或者确定目标元素不存在为止。
下面是两种写法:
递归版本
def binary_search(array, target, low, high):
if low high:
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));
}
}
求一个简单的一维数组二分查找程序代码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)); }}
java写二分查找代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用java写一个二分查找、java写二分查找代码的信息别忘了在本站进行查找喔。