您的位置:首页 > 其它

用折半查找法实现排序好的数组的查找(有重复记录)

2011-07-09 14:51 316 查看
int halfFind(int a[],int n,int num)//二分查找,返回重复的第一个{ if(n<1) return -1; int start=0,end=n-1; int pos; while(start<end) { pos=(start+end)/2; if(a[pos]==num) end=pos; else if(a[pos]<num) start=pos+1; else end=pos-1; } if(a[start]==num) return start; return -1;}

int _tmain(int argc, _TCHAR* argv[]){ int a[10]={1,3,5,6,6,6,6,9,12,15}; int index=halfFind(a,10,6); cout<<index<<endl; return 0;}

返回结果为3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐