Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int bSearch(int * ptr, int size, int X){
- int firstElementOfInterval=0;
- int secondElementOfInterval=size;
- int middleOfInterval=0;
- int pivot=0;
- size=secondElementOfInterval-firstElementOfInterval;
- try {
- if (ptr[size-1]>=X) throw 1;
- }
- catch (int a) {
- std::cout<<"error "<<a<<" the required item does not exist! return 0"<<std::endl;
- return 0;
- }
- while(1){
- size=secondElementOfInterval-firstElementOfInterval;
- middleOfInterval=firstElementOfInterval+(size/2);
- pivot=ptr[middleOfInterval];
- if (pivot < X)
- secondElementOfInterval=middleOfInterval;
- if (pivot>=X){
- if (ptr[middleOfInterval+1]<X) {
- return ptr[middleOfInterval+1];
- }
- else {
- firstElementOfInterval=middleOfInterval;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement