int binary_search(int x, int data[], int b, int e) { int i; while(b <= e) { i = (b + e) / 2; if(data[i] == x) return i; if(data[i] < x) b = i + 1; else e = i - 1; } return -1; }
int binary_search_recursion(int x, int data[], int b, int e) { int i; i = (b + e) / 2; if(b > e) return -1; if(data[i] != x) { if(x < data[i]) return binary_search_recursion(x, data, 0, i - 1); else return binary_search_recursion(x, data, i + 1, e); } else return i; }