int binarySearch(int arr[], int left, int right, int x)
{
  while( left <= right)
  {
    int mid = (left+right)/2;
    if(arr[mid] == x)
    {
      return mid;
    }
    else if(arr[mid] > x) 
    {
      right = mid-1; 
    }
    else  
    {
      left = mid+1; 
    }
  }
  return -1;
}
when I went through this myself I got 5n+4 = O(n) but somehow it is suppose to be O(logN) which I don't understand why that's the case.
int mean(int a[], size_t n)
{
   int sum = 0;                 // 1 step
   for (int i = 0; i < n; i++)  // 1 step *(n+1)
     sum += a[i];               // 1 step
   return sum;                  // 1 step
}
I understand that the above code reduces to 2N+3 but this is a very basic example and doesn't take much thought to understand. Will someone please walk me through the binary search version as all the sources I have encountered don't make much sense to me.
Here is a link to one of the many other resources that I have used, but the explanation as to how each statement is separated into steps is what I prefer if possible.
 
     
    