【数据结构-查找】有序表的查找-折半查找

本文介绍了有序表的查找方法——折半查找算法,详细阐述了算法流程,包括设置查找范围、计算中项、比较关键字并调整查找区间,直到找到目标值或查找范围为空。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法流程:

对一个从小到大的序列来说。。。。。。。。。。。。

1.置查找范围初态:low=1,high=n;

2.对当前的查找范围进行以下处理

    2.1求中项mid=(low+high)/2

    2.2将指定值k与中项的关键字值进行比较,如果等于则返回中项序号mid;若mid<k,则low=mid+1,反之high=mid-1;

    2.3重复2.2直至查找到返回mid或者当low>high时候返回0

#include<stdio.h>

#include<stdlib.h>
typedef int Datatype;
struct Rec
{
Datatype key;


};
Rec r[] = { 0,5,13,19,21,37,56,64,75,80,88,92};//记住第一个r[0]的值一定要放入0;Rec r[n+1].r中内容为n+1,这是因为把第0个值里放入了一个0.
//假如有序表示从小到大来表示的
int bisrch(Rec r[], int n, Datatype k)
{
int low, high, mid;
low = 1;
high = n;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值