c - Why not use Recursion for Binary Search for a sorted array -


i'm trying implement binary search n size of array , it's not working recursion, when don't use recursion work, , don't seem understand why

int mid = 0; int low = 0;  bool search(int value, int values[], int n) {       {    mid = (low + n)/2;     if(values[mid] == value)     {         return true;    }    else if (values[mid]>value)     {        n= mid -1;        return search(value, values,  n);      }    else if (values[mid]<value)    {         low = mid + 1;        return search(value, values,  low);     }  }  while (n > low);  return false; } 

the problem call recursive call search upper half of array pointer lower half. if value in upper half, won't find it. need like:

bool search(int value, int values[], int n) {     int mid = n/2;     if (n <= 0) {         return false;     } else if (values[mid] == value) {         return true;     } else if (values[mid] > value) {         return search(value, values, mid);     } else if (values[mid] < value) {         return search(value, values + mid + 1, n - mid - 1);     }  } 

Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -