首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

2分查找和插入

2012-07-20 
二分查找和插入bool bfind falseint low 0, high max, mid 0while(low high){mid (highlow

二分查找和插入

    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位置

     }

    }

 

热点排行