懒人二分查找法.
整 压位(向量<整>&呀,整 a){//呀按从大到小排序.
整 i=0,j=呀.大小(),m=(i+j)/2,k;
如(!j)中 0;//要加上这句,不要忘记了,否则,要掉坑的.
如(a<=呀.后())中 j;//最右边
如(a>=呀[0])中 0;//最左边
当(1){//m为中间,从j往前走,要测试一下.
k=呀[m];
如(k>a)i=m;异 如(k<a)j=m;
异 中 m;//i为左,j为右.
m=(i+j)/2;如(i+1==m||m+1==j)中 m;
}//67,45,32,二分法.
}//用逆序的
这是懒人的二分法.主要是不折腾.太难的,也不必去搞.就这样吧.
最适合,像我这样,一点都不熟练排序的人用.不麻烦.
先判断两边是否越界.然后在中间,比大小.根据大小,来控制i/j.然后只要中间的m与i/j挨着时,就算找到位置了.这就是懒人找位法.
浙公网安备 33010602011771号