binary search(二分法)
本文最后更新于:2021年9月2日 晚上
binary search(二分法):
代码:
import java.util.Arrays;
/**
* 二分法查找元素
*/
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {30,20,50,10,80,9,7,12,100,40,8};
int searchWord = 20;//要查找的值
System.out.println(searchWord+"索引位置:"+binarySearch(arr,searchWord));
}
/**
*
* @param array 目标数组
* @param value 所要查找的值
* @return 如果找到,则返回这个值在数组中的索引,如果未找到,则返回-1;
*/
public static int binarySearch(int[] array,int value){
//二分法查找的数组,戏必须先排序
Arrays.sort(array);
System.out.println(Arrays.toString(array));
int low = 0;
int high = array.length-1;
while(low<=high){
int middle = (low+high)/2;
if (value==array[middle]){
return middle;
}
if (value>array[middle]){
low = middle+1;
}
if (value<array[middle]){
high = middle-1;
}
}
return -1;//未找到返回-1
}
}
执行结果:
本文作者: CodeAnime
本文链接: https://codeanime.cc/binary-search%EF%BC%88%E4%BA%8C%E5%88%86%E6%B3%95%EF%BC%89.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!