数据结构实验五:查找
查找——实现监视哨法查找
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int a[101],i;
for(i=1;i<=100;i++)
a[i]=rand()%100;
for(i=1;i<=100;i++)
printf("%d ",a[i]);
printf("\n");
int key;
scanf("%d",&key);
printf("顺序查找\n");
a[0]=key;
for(i=100;i>=0;i--)
if(a[i]==key){
printf("%d\n",i);
break;
}
qsort(&a[1],100,sizeof(int),cmp);
for(i=1;i<=100;i++)
printf("%d ",a[i]);
printf("\n");
printf("折半查找\n");
int mid,start=1,end=100;
mid=(start+end)/2;
while(start<=end)
{
if(a[mid]==key){
printf("%d\n",mid);
break;
}
if(a[mid]>key){
end=mid-1;
mid=(end+start)/2;
}
else{
start=mid+1;
mid=(start+end)/2;
}
}
printf("end\n");
}
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int a[101],i;
for(i=1;i<=100;i++)
a[i]=rand()%100;
for(i=1;i<=100;i++)
printf("%d ",a[i]);
printf("\n");
int key;
scanf("%d",&key);
printf("顺序查找\n");
a[0]=key;
for(i=100;i>=0;i--)
if(a[i]==key){
printf("%d\n",i);
break;
}
qsort(&a[1],100,sizeof(int),cmp);
for(i=1;i<=100;i++)
printf("%d ",a[i]);
printf("\n");
printf("折半查找\n");
int mid,start=1,end=100;
mid=(start+end)/2;
while(start<=end)
{
if(a[mid]==key){
printf("%d\n",mid);
break;
}
if(a[mid]>key){
end=mid-1;
mid=(end+start)/2;
}
else{
start=mid+1;
mid=(start+end)/2;
}
}
printf("end\n");
}
博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/
对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架