当前位置:   article > 正文

二分查找递归和非递归算法_c++递归和非递归实现二分查找算法

c++递归和非递归实现二分查找算法

折半查找也称二分查找,它是一种高效率的查找方法,但是使用的时候必须采用顺序存储结构,而且表中元素按关键字有序排列。

查找过程:从表的中间开始,如果给定值和中间记录的关键字相等,则查找成功;如果给定值大于或者小于中间记录的关键值,则在表中大于或者小于中间记录的那一半中查找,这样重复操作,直到查找成功,或者在某一步查找区间为空,则代表查找失败。

递归算法

  1. #include<stdio.h>
  2. #include<iostream>
  3. using namespace std;
  4. int Search_Bin(int a[],int key,int n)//key为关键字,n为输入的数据个数
  5. {
  6. int low,high,mid;
  7. low=1;
  8. high=n;
  9. mid=(low+high)/2;
  10. while(low<=high)
  11. {
  12. if(key==a[mid]) return mid;
  13. else if(key<a[mid]) high=mid-1;
  14. else low=mid+1;
  15. }
  16. return 0;
  17. }
  18. void SearchBin()
  19. {
  20. int n,key;
  21. cout<<"请输入数据个数和查找的关键字: "<<endl;
  22. cin>>n>>key;
  23. int a[n];
  24. for(int i=1;i<=n;i++)
  25. scanf("%d",&a[i]);
  26. int end=Search_Bin(a,key,n);
  27. cout<<end;
  28. }
  29. int main()
  30. {
  31. SearchBin();
  32. return 0;
  33. }

递归算法,递归算法使用时要注意开始条

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号