Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int div_(double i, double val)
- {
- return ceil(i / val);
- }
- int bsrch( int array[], size_t size, int value )
- {
- size /= sizeof(decltype(array));
- if( size == 0 )
- {
- return -1;
- }
- int start = size / 2;
- int add = 0;
- for( int i = start, k = start;; k = div_(k, 2) )
- {
- if( array[i-1] == value )
- {
- return i-1;
- }
- if( value < array[i-1] )
- {
- i = add + div_(k,2);
- }
- else if( value > array[i-1] )
- {
- add += k;
- i = div_(k,2) + add;
- }
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment