永发信息网

用C语言创建一个二分查找函数

答案:1  悬赏:0  手机版
解决时间 2021-11-29 02:30
用C语言创建一个二分查找函数
最佳答案
排序(冒泡)
void(student*tmp,int size)
{
for(int j=0;j {
for(k=0;k {
if(strcmp(tmp[k].name,tmp[k+1].name)<0)
{
student tm=tmp[k];
tmp[k]=tmp[k+1];
tmp[k]=tm;
}
}
}
}
int findOn(student*test,char*name,int begin,int end)
{
if(begin>end)
{
return -1;//没找到
}
int mid=end+((end-begin)/2);
if(strcmp(test[mid].name,name)==0)
{
return mid;
}elseif((strcmp(test[mid].name,name)<0)
{
return findOn(test,name,mid+1,end);
}else
{
return findOn(test,name,begin,mid-1);
}
}
int find(student *test,int size,char* studentname)
{
return findOn(test,strudentname,0,size-1);
}
find(student,3000,"testname");

再来一个快速排序
void quickSort(student *test arr,int startPos, int endPos)
{
int i,j;
student key;
key=arr[startPos];
i=startPos;
j=endPos;
while(i{
while(strcmp(arr[j].name,key.name)>=0 && i{
student tmp=arr[i];
arr[i]=arr[j]; //moveed
arr[j]=tmp;
i++;
}
while((strcmp(arr[i].name,key.name)<=0&& i{
student tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
j--;
}
}
arr[i]=key; //赋值
if(i-1>startPos) quickSort(arr,startPos,i-1);
if(endPos>i+1) quickSort(arr,i+1,endPos);
}
quicksort(test,0,3000-1);
find(student,3000,"testname");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求 热河2018李志跨年演唱会的吉他谱
宜人信贷款这个可靠吗
张杰和谢娜真的离婚了吗
北京迪赫尔化妆品公司的产品怎么样啊,知道的
我每天晚上都是心情不好的。偷偷晚上都在伤心
为什么疯子都喜欢朝着一个方向胡言乱语
seaJs 模块中的html怎么绑定后台数据显示
什么是恐怖行动
苏go3一2o12图集第50,51页
什么是超级全能生?
如果现在高三胸围34C,到了大学还会发育吗?
梯控系统是什么
为什么每天早上一起床就感觉不舒服得马上
河图哪首歌比较容易学?
新代加工中心设定对刀误差范围在哪里设置?
推荐资讯
Y残疾人专用小型自动挡载客汽车价格多少钱
新建南路双塔西街口到南中环百姓渔村三部怎么
The questions of what children learn, and
关于乱做的成语
男生17岁还会长吗
别克商务6座车有吗
你能根据发现的规律算出888888888x999999999
1976阴历9.07是阳历什么时候
苏37和歼20哪个强
立轴圆台平面磨床中间尺寸小怎么调节
湘乡市在哪里?
69和72的公因数
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?