c/c++语言开发共享C++实现折半查找

本文实例为大家分享了c++实现折半查找的具体代码,供大家参考,具体内容如下折半查找定义:计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary se

c/c++开发分享C++实现折半查找实例为大家分享了c++实现折半查找的具体代码,供大家参考,具体内容如下

折半查找

定义:

计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。

搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

C++实现折半查找

代码:

  #include <iostream>  using namespace std;    int search_bin(int a[],int key,int n){   int low = 0;   int high = n-1;   int mid;   while(low<=high){   mid=(low+high)/2;   if(key==a[mid]){    return mid;   }   else if(key<a[mid]){    high=mid-1;   }   else{    low=mid+1;   }   }   return 0;  }    void sort(int a[],int n){   //冒泡法排序   for(int i=0;i<n-1;i++){   for(int j=0;j<n-i-1;j++){    if(a[j]>a[j+1]){    int t=a[j];    a[j]=a[j+1];    a[j+1]=t;    }   }   }   }    void print(int a[],int n){   for(int i=0;i<n;i++){   cout<<a[i]<<" ";   }   cout<<endl;  }  int main()  {   int a[10]={2,1,4,6,7,3,8,0,5,9};   print(a,10);   sort(a,10);   print(a,10);   cout<<search_bin(a,7,10)+1;   return 0;  }

以上就是c/c++开发分享C++实现折半查找的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/596967.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐