二分查找算法c语言代码(C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数)

:暂无数据 2026-08-26 02:00:02 :0

二分查找算法c语言代码(C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数)

各位老铁们,大家好,今天由我来为大家分享二分查找算法c语言代码,以及C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数

根据需求,用二分法查找指定数组中的指定数字,代码如下:
#include 《stdio.h》
// 在长度为len的数组a中寻找n,找到就返回数组下标,没找到就返回-1
int search(int a, int len, int n)
{
int index = -1;
int left = 0, right = len, mid = (left + right) / 2;

while (left 《= right)
{
if (n == a[mid])
{
index = mid;
break;
}
elseif (n 》 a[mid])
{
left = mid + 1;
mid = (left + right) / 2;
}
else
{
right = mid - 1;
mid = (left + right) / 2;
}
}

return index;
}
int main()
{
int array = {5, 8, 13, 17, 23, 25, 29, 50, 53}; // 数组
int length = 9; // 数组长度
int aim = 17; // 查找目标

// 输出查找结果, Search 17 in array: 3
printf(“Search %d in array: %d\n“, aim, search(array, length, aim));

return0;
}

用C语言编写非递归算法实现折半查找(二分查找)

char a;//按字典序递增
int search(char *x)//二分查找,返回有序表中大于等于x的元素位置
{
int low=0,high=9,mid,t;
while(low《=high)
{
mid=(low+high)/2;
t=strcmp(a[mid],x);//比较中点位置与x
if(t==0) return mid;//相等返回其位置
else
if(t》0) high=mid-1;//x小于mid元素,则在中点前
else low=mid+1;
}
return high+1;//返回大于x的第一个元素
}
这个是我曾经用过的字符串的二分查找~
请根据需要修改数据类型。。。

二分查找C语言

你的错误挺多的,首先是忘了定义int x;

其次是对strlen()函数的用法错了,你的数组s是整型,但是strlen(char*ch),括号里的只能写字符型数组的变量名,你要求整型数组的长度可以这样求n=sizeof(s)/sizeof(int);

最后一个也是挺致命的错误就是Bsearch()函数里的while循环应该是while(low《=high),而不是while(low《high);以及对break的使用,你也用错了,break是跳出循环的意思,你用在这里就是不执行while的意思,如果你非要用的话应该是continue,然而事实上你什么也不写就好了。具体代码如下:

#include《stdio.h》
#include《stdlib.h》
#include《string.h》
int Bsearch(int s,int x,int n);
int main (void)
{
    int i;
    int n;
    int x;//这里你没写
    int s={1,2,3,4,5,6,7,8,9,10};
    n=sizeof(s)/sizeof(int);//这里应该改成这样
    printf(“%d please input x:“,n);
    scanf(“%d“,&x);
    i=Bsearch(s,x,n);//这里不要写成s
    printf(“\n%d“,i);
    system(“pause“);
    return 0;
 }
 int Bsearch(int s,int x,int n)
 {
     int low,high,mid;
     low=0;
     high=n-1;
     while(low《=high)
     {
         mid=(low+high)/2;
         if(s[mid]》x)
         {
             high=mid-1;
             continue;//这行不写也行,下面也是
        }
        else if(s[mid]《x)
        {
             low=mid+1;
             continue;
        }
        else
        {
             return mid;
        }
    }
    return -1;
 }

以上就是我们为大家找到的有关“二分查找算法c语言代码(C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

二分查找算法c语言代码(C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数)

本文编辑:admin

更多文章:


repercussions(都是余波,repercussions和aftermath有什么区别啊)

repercussions(都是余波,repercussions和aftermath有什么区别啊)

今天给各位分享都是余波,repercussions和aftermath有什么区别啊的知识,其中也会对都是余波,repercussions和aftermath有什么区别啊进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 09:00

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

本篇文章给大家谈谈dropdownlist 绑定,以及DropDownList 绑定所有项 并 显示指定项对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月11日 08:50

协方差计算公式(协方差的计算公式)

协方差计算公式(协方差的计算公式)

这篇文章给大家聊聊关于协方差计算公式,以及协方差的计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 08:10

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

本篇文章给大家谈谈易语言网页api接口怎么调用,以及易语言,怎么读取网页json的api对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 08:00

majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

最近更新

repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026-10-11 09:00:05 浏览:0
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026-10-11 08:50:04 浏览:0
majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
热门文章

标签列表