二分搜索算法实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
//主函数
int NotRecursionbinarySearch(int array[] ,int length,int searchDate){
int left=0;
int right=length-1;//设置最左边和最右边的标杆
if(array==NULL||length<=0){
return -1;
}
else while(left<=right){
int middle=(right+left)/2;
if(array[middle]==searchDate){
return middle;
}
else {
if(array[middle]left=middle+1;
}
else {
right=middle-1;
}
}
}
}
int RecursionbinarySearch(int array[] ,int searchDate,int start,int end){
int mid;
if(array==NULL||start>end){
return -1;
}
if(start<=end){
mid=(start+end)/2;
if(array[mid]==searchDate){
return mid;}
else
{
if(array[mid]return RecursionbinarySearch( array ,searchDate,start=mid+1, end);
}
else{
return RecursionbinarySearch( array ,searchDate,start, end=mid-1);}
}
}
}
void main(){
int array[]={1,5,6,7,8,9,44,66,99,101};
int length=sizeof(array)/sizeof(array[0]);
int index=NotRecursionbinarySearch(array, length,9);
int index1=RecursionbinarySearch(array,9,0,9);
printf("用非递归算法实现");
printf("用非递归算法实现该数字在数组中的序号是 %d",index);
printf("\n");
printf("用递归算法实现");
printf("用递归算法实现该数字在数组中的序号是 %d",index1);
printf("\n");
}



相关文档
最新文档