2008秋-计算机软件基础- 第四章- 顺序查找,二分查找
/*---------------------------------------------------------
Title: 顺序查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int SequencSearch(struct node numbers[],int length, int value)
{
//顺序查找,在numbers[]中查找value,表长length
//成功返回位置(0~length-1),失败返回-1。
int i;
for(i=0;i<length;i++)
{
if(numbers[i].key==value)
return i;
}
return -1;
}
void main()
{
struct node s[5]={{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
position=SequencSearch(s,5,3);
//position=SequencSearch(s,5,10);
printf("position=%d\n",position);
}
Title: 顺序查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int SequencSearch(struct node numbers[],int length, int value)
{
//顺序查找,在numbers[]中查找value,表长length
//成功返回位置(0~length-1),失败返回-1。
int i;
for(i=0;i<length;i++)
{
if(numbers[i].key==value)
return i;
}
return -1;
}
void main()
{
struct node s[5]={{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
position=SequencSearch(s,5,3);
//position=SequencSearch(s,5,10);
printf("position=%d\n",position);
}
/*---------------------------------------------------------
Title: 二分查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int binsearch(struct node r[],int n,int x)
/*在长度为n的升序线性表上查找关键字为x的元素*/
{ int low,high,mid;
low=1; high=n;
/*设置查找区间左、右端点的初值*/
while(low<=high) /*当查找区间非空时进行查找*/
{ mid=(low+high)/2; /*求出区间中间位置mid的值*/
if(x==r[mid].key) return(mid);
/*查找成功时返回元素所在的位置*/
else
{ if(x<r[mid].key) high=mid-1; /*缩小查找区间*/
else low=mid+1;
}
}
return(0); /*查找失败时返回0值*/
} /*binsearch*/
void main()
{
struct node s[6]={{0,0},{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
//position=binsearch(s,5,3);
position=binsearch(s,5,10);
printf("position=%d\n",position);
}
Title: 二分查找
Author : Eman Lee
----------------------------------------------------------*/
#include<stdio.h>
//定义顺序存储线性表的结点结构
struct node
{
int key;//关键字
int other; //非关键字
};
int binsearch(struct node r[],int n,int x)
/*在长度为n的升序线性表上查找关键字为x的元素*/
{ int low,high,mid;
low=1; high=n;
/*设置查找区间左、右端点的初值*/
while(low<=high) /*当查找区间非空时进行查找*/
{ mid=(low+high)/2; /*求出区间中间位置mid的值*/
if(x==r[mid].key) return(mid);
/*查找成功时返回元素所在的位置*/
else
{ if(x<r[mid].key) high=mid-1; /*缩小查找区间*/
else low=mid+1;
}
}
return(0); /*查找失败时返回0值*/
} /*binsearch*/
void main()
{
struct node s[6]={{0,0},{1,80},{2,75},{3,60},{4,89},{5,100}};
int position;
//position=binsearch(s,5,3);
position=binsearch(s,5,10);
printf("position=%d\n",position);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY