C++二分法在数组中查找关键字的方法

C++二分法在数组中查找关键字的方法,第1张

概述本文实例讲述了C++二分法在数组中查找关键字方法。分享给大家供大家参考。具体如下:

本文实例讲述了C++二分法在数组中查找关键字的方法。分享给大家供大家参考。具体如下:

/*  此程序演示了二分法查找算法(针对按从小到大排列的数组)的实现。*/#include <iostream>using namespace std;/*  功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组)  返回值:关键字在数组中的下标,返回-1表示未找到  a[]:  要搜索的数组  len:  数组元素个数  key:  要查找的关键字*/int binSearch(int a[],int len,int key){  int i = len / 2;  int ii = 0;  if(len < 1)    return -1;  if((key > a[i]) && (len - i > 0))  {    ii = binSearch(a+i+1,len - i - 1,key); // 在后半段数组中查找    if(ii != -1)      return ii + i + 1; // 加上数组前半段的长度    else      return -1;  }  else if(key < a[i] && i > 0) // 在前半段数组中查找    return binSearch(a,i,key);  else if(key == a[i])    return i; // 返回关键字在数组中的下标  else    return -1; // 未在数组中找到关键字}int main(){  int a[] = {2,4,5,20,24,35,66,78,98};  int len = sizeof(a) / sizeof(int);  int i,key = -1;  while(1)  {    cin>>key;    i = binSearch(a,len,key);    printf("%d\n",i);    if(key > 100)      break;  }  return 0;}

希望本文所述对大家的C++程序设计有所帮助。

总结

以上是内存溢出为你收集整理的C++二分法在数组中查找关键字的方法全部内容,希望文章能够帮你解决C++二分法在数组中查找关键字的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1252581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存