读书人

2分查找和插入

发布时间: 2012-07-20 10:38:30 作者: rapoo

二分查找和插入

bool bfind = false;
int low = 0, high = max, mid = 0;
while(low <= high)
{
mid = (high + low) / 2;
cmp = 比较函数【-1,0,1】
if (cmp < 0) {
low = mid + 1;//mid往右移动
} else if(cmp > 0) {
high = mid - 1;//mid往左移动
} else {
bfind = true;
break;
}
}

if (bfind) {

//找到处理

} else {

//没有找到,这里如果处理插入low表示插入位置

//可以做如下处理

if(low >= max) {

//最后追加数据

} else {

//前面插入数据,包括最开始位置/0位置

}

}

读书人网 >其他相关

热点推荐