您的位置:首页 > 其它

二分法查找算法 (递归)

2012-10-04 18:52 417 查看
有一由小到大排列的数组m[],数组大小为n,请用二分法查找算法找出与关键数key相等的元素,若查找成功返回元素在数组中的位置,没找到返回-1.

// 二分查找.cpp

#include "stdafx.h"
#include <string>

int search(int m[],int key,int low,int high)
{
int mid=(low+high)/2;
if (low>high)
return -1;
if (key==m[mid])
return mid;
else if (key<m[mid])
return search(m,key,low,mid-1);
else
return search(m,key,mid+1,high);
}

void main()
{
int a[]={1,2,5,7,9,12,16};
int i,len;
len=sizeof(a)/sizeof(a[0])-1;
i=search(a,12,0,len);
printf("%d\n",i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: