二分查找

 

 

 

 

 

 

又称为 折半查找,二分查找,适合对已经排序好的数据集合进行查找,效率高。假设有一升序的数据集合,先找出升序集合中最中间的元素,将数据集合划分为两个子集,将最中间的元素和关键字key进行比较,如果等于key则返回,如果大于关键字key,则在前一个数据集合中查找,否则在后一个子集中查找,直到找到为止,如果没找到则返回-1;
流程图:

 

 

 核心代码

while(low<=high)
{
      (*p)++;
      mid=(low+high)/2;
      if(a[mid]==k)
      {
         break;
       }
       else if(a[mid]>k)
       {
          high=mid-1;
        }
        else
        {
           low=mid+1;
        }
}

 

 

posted on 2019-12-16 19:14  L-HX  阅读(719)  评论(0编辑  收藏  举报