黑马程序员技术交流社区
标题:
二分查找法
[打印本页]
作者:
程序猿小哲
时间:
2015-9-19 17:36
标题:
二分查找法
重要的事情写在前面,
数组中的元素必须有序!!!
今天复习数组的时候,又详细的复习了一下二分查找法。
import java.util.Arrays;
/**
* 二分查找法
* @author Shawn·Zhang
*
*/
public class Demo
{
public static void main(String[] args)
{
int[] arr = {8,7,9,4,2,5,1,3,6};
Arrays.sort(arr);//排序
System.out.println(Arrays.toString(arr));
int value = getNum(arr, 3);
System.out.println("数值3是数组第"+value+"号元素");
}
private static int getNum(int[] arr, int value){
int low = 0;
int high = arr.length-1;
while(low<= high){
int middle = (low+high)/2;
if(value==arr[middle]){
return middle;
}else if(value<arr[middle]){
high = middle-1;
}else if(value>arr[middle]){
low = middle+1;
}
}
return -1;//若没有所要查找的值,则返回负一
}
}
复制代码
同样的,Java中也为我们提供了这个API,在以后使用中,我们可以直接简写:
/**
* 二分查找法
* @author Shawn·Zhang
*
*/
public class Demo
{
public static void main(String[] args)
{
int[] arr = {8,7,9,4,2,5,1,3,6};
Arrays.sort(arr);//排序
System.out.println(Arrays.toString(arr));
//int value = getNum(arr, 3);
int value = Arrays.binarySearch(arr, 0);//Java提供的方法
System.out.println("数值3是数组第"+value+"号元素");
}
}
复制代码
作者:
yuzhouyichen
时间:
2015-9-19 17:56
挺厉害么 学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2