折半查找
定义:折半查找,也可以叫二分查找。下面是折半查找的递归实现.
数据结构:数组
算法分析:定义两个指针i和j, i指向查找范围的起点,j指向查找范围的终点。查找的数为x.递归结束条件:i>j;
递归主体:if(a[(i+j)/2] == x) return i;
if(a[(i+j)/2] < x) f(a[(i+j)/2], j, x);
if(a[(i+j)/2] > x) f(j, a[(i+j)/2],x);
代码:
#include "stdio.h"
int search(int a[10], int i, int j, int x);
void main() {
int a[10] = {1,2,3,4,5,6,7,8,9,10};
printf("The search result is:%d", search(a, 0, 9, 4)