二分查找——折半查找

本文详细介绍了二分查找算法的应用前提,包括线性表必须是顺序存储且元素有序排序。接着,通过伪代码展示了二分查找的过程,从左到右逐步定位目标元素。最后,总结了二分查找可能的结果,找到目标元素或返回未找到的错误信息。
摘要由CSDN通过智能技术生成

1.二分查找的前提
<1>要查找的线性表必须是顺序存储的
<2>线性表中的元素必须是有序排序的
2.二分查找的过程
int BinarySearch(List Tbl, ElementType K) // 定义一个有两个参数函数,Tbl为线性表,K为关键字
{
int left,right,mid,NoFound =-1; 定义几个标签,left为左标签,right为右标签,mid为中间值,NoFound为未找到的标记值

left = 1; //letf指向第一个元素
right = Tbl->Length;//right指向最后一个元素
while(left <= right) //循环的判断条件:letf和right未发生置换
{
mid = (left+right)/2; //中间值为left与right和的一半
if(K < Tbl->Element[mid]) right = mid-1; //如果要找的K在线性表的左半部分,则right向左移,移至mid左边
else if(K > Tbl->Element[mid]) left = mid -1;//如果要找的K在线性表的右半部分,则left向右移,移至mid右边
else return mid;//当left和right指向同一个元素时,并且不再发生移动时,则说明找到了K,即mid指向的元素,即mid,left,right三者指向了同一个元素,即K
}
return NotFound;//如果不满足while的循环条件,即left大于right,则返回NoFound,即-1
}
3.二分查找的结果
<1>成功找到,则输出找到的值
<2>未找到,提示错误信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值