二分查找(C语言描述)

二分查找是比较简单的一种搜寻方式,但是它必须基于一个已排序的数组,换句话说的话,也就是二分查找是需要一个比较来判断是往哪一方缩小查找区间:

建议查找益于比较的数据:例如数字

代码上:

/*对分查找*/

#include<stdio.h>

int BinarySearch(const int A[], int X, int N );//定义对分查找函数 函数的参数为(元素数组, 查找的元素, 数组的长度 )
int main()
{
      int a[]={1,2,3,4,5,6,7};//自定义的一个数组
      int b = BinarySearch( a, 5, 7);//调用对分查找函数
      printf("%d\n", b);//打印出该元素在数组的位置
      return 0;
}

int BinarySearch(const int A[], int X, int N )//对分查找函数
{
      int Low;//查找区间的左侧位置
      int Mid;//查找区间的中间位置
      int High;//查找位置的右侧位置

      Low = 0; High = N - 1;
      while( Low <= High){//查找开始,直到区间的左侧=右侧结束查找,即查找区间为一个元素时
            Mid = ( Low + High) / 2;//初始化区间中间位置
            if( A[Mid] < X){//查找数据大于区间中间位置,查找区间缩小向右侧
                  Low = Mid + 1;
            }
            else if( A[Mid] > X){//查找数据小于区间中间位置,查找区间缩小向坐侧
                  High = Mid -1;
            }
            else
                  return Mid; /*Found*/
      }
      return -1; /*Not Found*/
}

注意要点:缩小查找区间时,向右侧缩小时,Low = Mid + 1;向左侧缩小时,High = Mid - 1;

原文链接: https://www.cnblogs.com/wykxldz/p/13191837.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    二分查找(C语言描述)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/358849

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午12:30
下一篇 2023年3月2日 下午12:30

相关推荐