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;
}