折半查找(递归)
其实折半查找的递归方法同迭代方法思路上是一样的,在此不再多说。
1
int binarySearch( const int b[], int searchKey, int low, int high )
2
{
3
int middle = ( low + high ) / 2;
4
if ( searchKey == b[ middle ] )
5
return middle;
6
else if ( searchKey < b[ middle ] )
7
return binarySearch( b, searchKey, low, middle - 1 );
8
else if ( searchKey > b[ middle ] )
9
return binarySearch( b, searchKey, middle + 1, high );
10
else
11
return -1;
12
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)