///非递归算法
#include <stdio.h>
int BinarySearch(int array[],int len,int findData){
if(array==NULL||len<= 0)
return -1;
int start = 0;
int end = len -1;
while(start<end){
int mid = (start + end)/2;
// int mid = start +(end-start)/2;
if(array[mid] == findData)
return mid;
else if(findData<array[mid])
end = mid -1;
else(findData>array[mid])
end = mid +1;
}
return -1;
}
//递归算法
int BinarySearchRecursion(int array[],int len ,int findData){
if(array == NULL || len<= 0)
return -1;
int start = 0;
int end = len -1;
int mid = start+(end - start)/2;
if(array[mid]== findData)
return mid;
else if(array[mid]<findData)
return BinarySearchRecursion(array,mid-1,findData);
else(array[mid]>findData)
return BinarySearchRecursion(array,mid+1,findData);
}
如何分别使用递归与非递归实现二分查找算法
最新推荐文章于 2020-10-12 14:31:50 发布
本文详细介绍了二分查找算法的两种实现方式:非递归和递归算法,并提供了完整的 C 语言代码示例。通过本文,读者可以了解二分查找的基本原理及其实现细节。
2038

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



