/* use 0-based indice*/ int lowerBound = 0; int upperBound = v.size() - 1;
while(1){
if(lowerBound == upperBound) return v[lowerBound] == lowerBound; int i = lowerBound + (upperBound - lowerBound) / 2; if(v[i] == i){ return true; }else if(v[i] < i){ lowerBound = i + 1; }else if(v[i] > i){ upperBound = i - 1; } } }
int i = lowerBound + (upperBound - lowerBound) / 2;
if(v.size() == 0) return false;
/* use 0-based indice*/ int lowerBound = 0; int upperBound = v.size() - 1;
while(1){