c++算法的上界下界
整 取下界(向量<整>&大,整 值){//最后两位表区间,即比值刚好>=的东西.
整 i=0,j=大.大小(),o,k,c=j-i;
当(c>0){//
k=c/2;o=大[i+k];//k=1
如(o<值){i+=k+1;c-=k+1;}异 c=k;
}
中 i;
}//向量<T>是从小到大排好序的.上界,取>的首个.
整 取上界(向量<整>&大,整 值){//下界,取>=的首个
整 i=0,j=大.大小(),o,k,c=j-i;
当(c>0){//与下界的差别只有一个地方
k=c/2;o=大[i+k];//k=1
如(o<=值){i+=k+1;c-=k+1;}异 c=k;
}
中 i;
}
//上界与下界的区别只有一个等号.上界,要求是大于才算.而下界是大于等于就算.
空 主(){
向量<整>m{25,54,66,98,100,117};
整 t=取上界(m,99);打印(t);
t=取上界(m,98);打印(t);
t=取上界(m,97);打印(t);
打印(m);
}
浙公网安备 33010602011771号