数据结构最简单的 二分查找 算法看不懂
structrecord{intkey;intothers;};intbisearch(structrecordr[],intk){intlow=0,mid,high=n...
struct record{int key; int others;};
int bisearch(struct record r[ ], int k)
{
int low=0,mid,high=n-1;
while(low<=high)
{
__mid=(low+high)/2__;
if(r[mid].key==k)
return(mid+1); //这里为什么是返还mid+1
else
if(r[mid].key>k) //这个又什么意思
high=mid-1; //不懂
else low=mid+1; //不懂
}
return(0);
} 展开
int bisearch(struct record r[ ], int k)
{
int low=0,mid,high=n-1;
while(low<=high)
{
__mid=(low+high)/2__;
if(r[mid].key==k)
return(mid+1); //这里为什么是返还mid+1
else
if(r[mid].key>k) //这个又什么意思
high=mid-1; //不懂
else low=mid+1; //不懂
}
return(0);
} 展开
展开全部
struct record{int key; int others;};
int bisearch(struct record r[ ], int k)
{
int low=0,mid,high=n-1;
while(low<=high)
{
__mid=(low+high)/2__;
if(r[mid].key==k)
return(mid+1); //数组下标是0到n-1,所以返回值要+1
else
if(r[mid].key>k) //如果r[mid]的key值大于k
high=mid-1; //查找范围减半,变成low到mid-1
else low=mid+1; //如果r[mid]的key值小于等于k 查找范围减半,变成mid+1到high
}
return(0);
}
int bisearch(struct record r[ ], int k)
{
int low=0,mid,high=n-1;
while(low<=high)
{
__mid=(low+high)/2__;
if(r[mid].key==k)
return(mid+1); //数组下标是0到n-1,所以返回值要+1
else
if(r[mid].key>k) //如果r[mid]的key值大于k
high=mid-1; //查找范围减半,变成low到mid-1
else low=mid+1; //如果r[mid]的key值小于等于k 查找范围减半,变成mid+1到high
}
return(0);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询