Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int finger_search(int* v, int len, int val) {
- int rad = 1;
- int l, r;
- int new_rad;
- while (true) {
- new_rad = min(rad * 2, len - 1);
- if (v[new_rad] >= val || new_rad == len - 1) {
- l = rad;
- r = new_rad;
- break;
- }
- rad = new_rad;
- }
- int fib_res = fib_search(&v[l], r - l + 1, val);
- if (fib_res == -1)
- return -1;
- else
- return l + fib_res;
- }
Advertisement
Add Comment
Please, Sign In to add comment