利用二分法查元素,并返回下标

利⽤⼆分法查元素,并返回下标
⼆分查 (折半查),它是⼀种效率较⾼的查⽅法。但是,折半查要求线性表必须采⽤顺序存储结构,⽽且表中元素按关键字有序排列。
要使⽤⼆分查有两个条件
1.必须是经过排序的数据集合
2.只适⽤于顺序储存的数据集合
话不多说,举个例⼦
设数据集合
D{5,13,17,42,46,55,70,94}
key=94(既要寻的值)
qbz95b01234567
513174246557094
无味红霉素
设low=0,high=7,要⽐较元素的下标为mid。
每次寻都要从数组(即low和high)最中间的元素开始⽐较,也就是mid=(low+high)/2,若key>D[mid],即mid左边的元素都⼩于key,然后low=mid+1,同理,当key<D[mid],high=mid-1; 循环执⾏该操作,当low>high时,跳出循环。
代码表⽰:
(这⾥我定义了个函数来实现)
int low=0,high=数组长度-1;团结湖三中
int HalfSearch(int D[],int low,int high,int key)
{
活顶尖int mid;
while(low<=high)//当low>high时,跳出循环。高粱秸
{
mid=(low+high)/2;//从数组(即low和high)最中间的元素开始⽐较
if(D[mid]==key)
{
return mid;//直接返回要元素的下标
}
双性同体else if(a[mid]<key)
{
low=mid+1;//mid左边的元素都⼩于key,然后low=mid+1
}
else
{
high=mid-1;//mid右边的元素都⼩于key,然后high=mid-1
}
}
return-1;//⽆法到
}
最近才开始写博客,有点菜,请⼤佬多多指教

本文发布于:2024-09-22 03:37:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/397816.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:元素   查找   数组   函数   循环   集合   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议