用C语言创建一个二分查找函数
答案:1 悬赏:0 手机版
解决时间 2021-11-29 02:30
- 提问者网友:龅牙恐龙妹
- 2021-11-28 02:45
用C语言创建一个二分查找函数
最佳答案
- 五星知识达人网友:白昼之月
- 2021-11-28 03:36
排序(冒泡)
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");
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");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯