package BinarySearch;
import java.util.List;
/**
* Created by tvoyamamka on 08.07.2014.
*/
public class BinarySearch {
public static int search(List<Integer> list, int x, int start, int end){
while(end>=start){
int middle = start/2+end/2;
if(list.get(middle)== x ){
return middle;
}
else if(list.get(middle) < x){
start=middle+1;
}
else if(list.get(middle) > x) {
end=middle-1;
}
}
return -1;
}
}
cGFja2FnZSBCaW5hcnlTZWFyY2g7CgppbXBvcnQgamF2YS51dGlsLkxpc3Q7CgovKioKICogQ3JlYXRlZCBieSB0dm95YW1hbWthIG9uIDA4LjA3LjIwMTQuCiAqLwpwdWJsaWMgY2xhc3MgQmluYXJ5U2VhcmNoIHsKICAgIHB1YmxpYyBzdGF0aWMgaW50IHNlYXJjaChMaXN0PEludGVnZXI+IGxpc3QsIGludCB4LCBpbnQgc3RhcnQsIGludCBlbmQpewogICAgICAgIHdoaWxlKGVuZD49c3RhcnQpewogICAgICAgICAgICBpbnQgbWlkZGxlID0gc3RhcnQvMitlbmQvMjsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG1pZGRsZSk7CgogICAgICAgICAgICBpZihsaXN0LmdldChtaWRkbGUpPT0geCApewogICAgICAgICAgICAgICAgcmV0dXJuIG1pZGRsZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKGxpc3QuZ2V0KG1pZGRsZSkgPCB4KXsKICAgICAgICAgICAgICAgIHN0YXJ0PW1pZGRsZSsxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYobGlzdC5nZXQobWlkZGxlKSA+IHgpIHsKICAgICAgICAgICAgICAgIGVuZD1taWRkbGUtMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIHJldHVybiAtMTsKICAgIH0KfQoK