求高手帮忙编译段主函数来调用他,并预先设定几个单词做数据可供查找,然后输入的单词在这里面?

#include <iostream>
using namespace std;

char * search_word(char * word,char * dict[],int n)
{int low=0,high=n-1,mid,searchpos,wordlen=strlen(word);
do
{
mid=(low+high)/2;
searchpos=strnicmp(word,dict[mid],wordlen);
if(searchpos==0)
return dict[mid];
else if(searchpos<0)
high=mid+1;
else
low=mid+1;
}
while(high>low);
return NULL;
}

莫回无
浏览 111回答 3
3回答

手掌心

void main(){//注意dict内的单词必须是有序的,也就是从小到大(按字母顺序)。char* dict[]={"abc","Defg","hijk","Lmn"};char* p=search_word("hijk",dict,4);if(p){printf("找到了:%s\n",p);}else{printf("没找到!\n");}}

三国纷争

你这个函数本身就有错误 二分查找一个典型错误 high = mid + 1; low = mid - 1还有你把问题说清楚,有些不明白

蝴蝶不菲

二分法使用的一个前提是数据有序
打开App,查看更多内容
随时随地看视频慕课网APP