用c语言进行二分法查找

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、二分法是什么
  • 二、示例
    • 1.用二分法查找数组中的一个数
    • 2.完整代码
  • 总结


前言

本文将用c语言来介绍二分法的使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、二分法是什么

二分法是取中间值与你想要的值进行对比,每对比一次,就砍掉一半。例如,你猜价格,从1-500之间,你先猜250;如果小了,你就会从251-500之间猜测,不会再猜1-250之间的数字。
但二分法使用有一个前提,必须是按照顺序排列的一组数字。

二、示例

1.用二分法查找数组中的一个数

给定一个数组,你要找到那个数字

int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int n=0;
scanf("%d"&n);//输入你想要在数组中找到的那个数
}

这个时候我们有两种办法,一种是暴力方法,直接将n与数组中每一个数字进行对比,另一种就是二分法,因为我们这个数组中的数字是按照顺序增长的。


int left =0;
int right=sizeof(arr)/sizeof(arr[0]);
int mid=(left+right)/2;

这里我们初始化三个变量,左下标,右下标,以及中间值。


while(left>=rigth)//由于我们不知道循环几次,所以这里我们使用while循环
{
mid=(left+right)/2;
if(arr[mid]<n)
{
left=mid+1;
}
else if(arr[mid]>n)
{
right=mid-1;
}
if
{
printf("找到了,下标为%d\n",mid);
}

上诉为基本的思路,但还有一种情况为没有找到该数字
所以我们可以引用一个中间变量


int find =0;

2.完整代码

用c语言进行二分法查找_第1张图片


总结

本文介绍了如何使用c语言来进行二分法的查找

你可能感兴趣的:(c语言,java,开发语言)