首页 > 代码库 > 学习笔记:二分法查找的递归和非递归两种算法
学习笔记:二分法查找的递归和非递归两种算法
首先是非递归查找函数:
1 int BinarySearch(PTABLE table,int numb){ 2 int Left,Right,Mid,ERROR=-1; 3 Left=0; 4 right=table->Lenth-1; 5 while(right>=Left){ 6 mid=(Right+Left)/2; 7 if(table->data[mid]>numb) 8 Right=mid-1; 9 else if(table->data[mid]<numb)10 Left=mid-1;11 else12 return(table->data[mid]);13 }14 return(ERROR);15 }
采用递归方式:
1 //recurbinary 2 int recurbinary(PTABLE table,int Left,int Right,int numb){ 3 if(Left>Right) 4 return(-1); 5 mid=(Left+Right)/2; 6 if(mid==table->data[mid]) 7 return(table->data[mid]); 8 else if(mid>table->data[mid]) 9 recurbinary(table,Left,mid-1,numb);10 else if(mid<table->data[mid])11 recurbinary(table,mid+1,Right,numb);12 }
学习笔记:二分法查找的递归和非递归两种算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。