1.二分查找
1.基本思想:
比较序列中最中间的数与要查找的之间的关系:如果大于要查找的数,则再次查找最中间的数左边的序列;如果小于要查找的数,则再次查找最中间的数右边的序列;如果相等则返回其下标;如果要查找的范围内已经没有数据,则序列中没有这个元素。
2.缺点:
要查找的必须是排好序的序列
序列中存在多个要查找的元素时,只能返回1个,且不一定是第几个
3.java语言代码
public static int BinaryFind(int[] Arr,int left,int right, int value)
{
if(left <= right)
{
if(Arr[(left + right)/2] > value)
return BinaryFind(Arr,left,(left + right)/2 - 1,value);
else if(Arr[(left + right)/2] < value)
return BinaryFind(Arr,(left + right)/2 + 1,right,value);
else
return (left + right)/2;
}
else
return -1;
}