学习笔记:二分法查找的递归和非递归两种算法
Posted Madao东治
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记:二分法查找的递归和非递归两种算法相关的知识,希望对你有一定的参考价值。
首先是非递归查找函数:
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 else 12 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 }
以上是关于学习笔记:二分法查找的递归和非递归两种算法的主要内容,如果未能解决你的问题,请参考以下文章