binary search
binary search
binary search time complexity = O(logn)
the question usually give you a sorted array and then find a target(index) in the value:
the biggest number which less than and euqall to 5
index | value | description |
---|---|---|
0 | 1 | |
1 | 2 | the biggest index which less than 3 (小于3的是这些 2是最大的index了) |
2 | 3 | the smallet index which bigger and equal than 3 |
3 | 3 | any index which equal to 3 |
4 | 3 | biggest index which less than and equal to 3 |
5 | 5 | the smallest index which bigger than 3 |
6 | 7 | |
7 | 9 | |
8 | 10 |
** the times of appearing 3 = the smallest index of bigger than 3 - the biggest index of less than 3**
Exponential backoff (倍增法)
sorted by non-decreasing array + big array + target value;
- 1.首先在非常大的数组中得到一个稳定的长度
range=1; getValue(n*2-1) 因为index是 range的数值-1, - 2 。