最近在温习编程相关基础知识,好久没有用C写过东东,自从毕业后,忘记的差不多了。这两天突然有个想法,从头开始好好温习下计算机编程基础知识,以巩固技术基础。下面是我用C实现数组查找,分别用二分查找和顺序查找实现的,据说二分查找算法很少人能一次性的写出来,我再温习温习,争取在下次面试时一次能够实现它,对自己进行一次超越。哈哈!
下面直接奉上代码,以供学习:
for(;;){
if(l>u)
return -1;
m=(l+u)/2;
if (data[m]==dvalue){
return m;
}else if(data[m]>dvalue){
u=m-1;
}else{
l=m+1;
}
}
}
/*顺序查找*/
int ss(int data[],int dvalue){
int i;
// int l=len(data);
for(i=0;i<MAX;i++){
// printf("%d/n",data[i]);
if(data[i]==dvalue){
return i;
}
}
return -1;
}
int main(){
//int MAX=1000;
int data[MAX];
int i;
//给数组赋值
for(i=0;i<MAX;i++){
data[i]=i*10;
}
//要查找的值
int value=300;
//顺序查找
int s=ss(data,value);
printf("%d/n",s);
//二分查找
int d=bs(data,value);
printf("%d/n",d);
return 0;
}
注:如需转载,请注明出处,谢谢!
http://blog.csdn.net/savechina