二分查找

来源:互联网 发布:c 游戏编程教程 编辑:程序博客网 时间:2024/05/15 12:54

        一、二分查找的概念:

       二分查找是算法里面比较简单的算法,很多人接触算法都是从二分查找开始入门的,二分查找也叫折半查找,它是运用分治策略的典型例子。折半查找方法适用于不经常变动而查找频繁的有序列表。所以它在有序数组中经常被使用到。

     二、基本的实现思想:

       它是将n个元素分成个数大致相同的两半,取a[n/2]与查找的数x作比较。如果刚好x = a[n/2],则直接就找到x,算法就终止;如果x<[a/2],就可以直接在数组a的左半边继续搜索x,这样就可以直接减少一半的搜索量;如果x>a[n/2],则就在数组的右半边继续搜索x。

     二、算法的具体实现:

<span style="font-size:12px;">int BinarySearch(int a[],const int& x,int n){//a[]数组地址,x查找的数, n元素个数    int left=0;int right=n-1;while(left <= right){        int middle = (left+right)/2;if(x == a[middle])return middle;if(x > a[middle])left = middle+1;   //返回x在数组中的位置,否则返回-1elseright = middle-1;}return -1;}</span>


  

0 0