/////// File: bsearch.C /////// // Geenric binary search template #include "bsearch.h" template int bsearch(T1 arr[], T2 key, int low, int high, int (* cmp)(T1, T2) ) { int mid,test; while (low <= high) { mid = (low + high) / 2; test = cmp(arr[mid], key); // -1, 0, +1 if (test > 0) high = mid - 1; else if (test < 0) low = mid + 1; else return(mid); // found } return(-1); // not found }