学习笔记:二分法查找的递归和非递归两种算法

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 }

 

以上是关于学习笔记:二分法查找的递归和非递归两种算法的主要内容,如果未能解决你的问题,请参考以下文章

二分法算法代码

图解二分查找的递归和非递归实现

算法笔记 9 二分查找

学习数据结构笔记(15) --- [二分查找算法(非递归)]

二分查找算法(递归与非递归两种方式)

递归和非递归的二分查找