#include <stdlib.h>

void* bsearch(const void* key,
              const void* base,
              size_t nel,
              size_t width,
              int (*cmp)(const void*, const void*)) {
  void* try
    ;
  int sign;
  while (nel > 0) {
    try
      = (char*)base + width * (nel / 2);
    sign = cmp(key, try);
    if (!sign)
      return try
        ;
    else if (nel == 1)
      break;
    else if (sign < 0)
      nel /= 2;
    else {
      base = try
        ;
      nel -= nel / 2;
    }
  }
  return NULL;
}
