递归方法
- int BinSearch(int Array[],int low,int high,int key/*要找的值*/)
- {
- if (low<=high)
- {
- int mid = (low+high)/2;
- if(key == Array[mid])
- return mid;
- else if(key<Array[mid])
- return BinSearch(Array,low,mid-1,key);
- else if(key>Array[mid])
- return BinSearch(Array,mid+1,high,key);
- }
- else
- return -1;
- }
非递归方法
- int BinSearch(int Array[],int SizeOfArray,int key/*要找的值*/)
- {
- int low=0,high=SizeOfArray-1;
- int mid;
- while (low<=high)
- {
- mid = (low+high)/2;
- if(key==Array[mid])
- return mid;
- if(key<Array[mid])
- high=mid-1;
- if(key>Array[mid])
- low=mid+1;
- }
- return -1;
- }

本文详细介绍了二分查找算法的两种实现方式:递归方法与非递归方法,并提供了具体的 C++ 代码示例。
929

被折叠的 条评论
为什么被折叠?



