package basic;
public class BinarySearch
{
public static void main(String[] args)
{
int[] arr = {0,1,2,3,4,5,6,7};
int index = binarysearch(arr, 123);
System.out.println(index);
}
/**
* 二分查找只适用于从有序的数列中进行查找,时间复杂度是O(log n)
* @param arr 传入的有序数组
* @param number 需要找的值
* @return 返回找到的位置,如果找不到就返回-1
*/
public static int binarysearch(int[] arr,int number)
{
int left=0;
int right=arr.length-1;
while(left<=right)
{
int middle=(left+right)/2;
if(arr[middle]==number)
{
return middle;
}
else if(arr[middle]>number)
{
right=middle-1;
}
else
{
left=middle+1;
}
}
return -1;
}
}
程序员必须会的基本算法2-非递归二分查找算法
猜你喜欢
转载自blog.csdn.net/qq_43416157/article/details/104429365
今日推荐
周排行