二分查找法递归和非递归实现
程序员文章站
2024-03-19 15:37:34
...
//非递归实现
int BinarySearch(int A[], int length, int number)
{
if(A==NULL || length<=0)
return -1;
int start=0;
int end=length-1;
while(start<end)
{
int mid=(start+end)/2;
if(A[mid]==number)
return mid;
else
if(A[mid]>number)
{
end=mid-1;
}
else
start=mid+1;
}
return -1;
}
//递归实现
int BinarySearch(int A[], int start, int end,int number)
{
if(A==NULL || start<end||start<0)
return -1;
int mid=(start+end)/2;
if(A[mid]>number)
return BinarySearch(A,start,mid-1,number);
if(A[mid]<number)
return BinarySearch(A,mid+1,end,number);
if(A[mid]==number)
return mid;
}
上一篇: 二分查找递归与非递归实现
下一篇: Spring-安全控制