@DanielFischer Could we modify the Binary Search also like that?
int binary_search(int A[], int key, int low, int high, int K)
{
if (high < low) return 0;
else
{
int mid=low+floor((high-low)/2);
if (abs(A[mid]-key) > K) return binary_search(A, key, low, mid - 1);
else if (abs(A[mid]-key)<=K) return mid;
}
}