二分查找也成为折半查找,理想状态下的时间复杂度为:
{{O(log_2 N)}}
之所以说是理想状态是因为此算法存在一个缺点,即查找对象必须是有序状态下的排列数据。
int binary_search(int arr[], int dst, int left, int right)
{
int mid = left + (right - left) / 2;
if (arr[mid] == dst)
return mid;
else if (arr[mid] > dst)
return binary_search(arr, dst, left, mid - 1);
else
return binary_search(arr, dst, mid + 1, right);
}