算法之简单的二分查找

二分查找也成为折半查找,理想状态下的时间复杂度为:

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