C语言二分法查找法

C语言二分法查找法C 语言 二分查找法 所谓的二分查找法 其实是一种有序的查找方法 也称折半查找 BinarySearch 如果是无序的则要先进行排序操作 基本思想是 目标值通过与中间元素比较 可分为三种情况 第一种情况 目标值与中间元素相等 查找结束 第二种情况 目标值比中间元素大 则把后半部分的中间元素与目标值比较 第二种情况 目标值比中间元素小 则把前半部分的中间元素与目标值

#C语言


== 二分查找法 ==
所谓的二分查找法,其实是一种有序的查找方法,也称折半查找(Binary Search),如果是无序的则要先进行排序操作。基本思想是:目标值通过与中间元素比较,可分为三种情况:
第一种情况:目标值与中间元素相等,查找结束;
第二种情况:目标值比中间元素大,则把后半部分的中间元素与目标值比较;
第二种情况:目标值比中间元素小,则把前半部分的中间元素与目标值比较;
这三步一直循环,直到查找结束。











程序如下

#include 
    
      int Bin_Search(int *num,int cnt,int target) { int first = 0,last = cnt-1,mid; int counter = 0; while(first <= last) { counter ++; mid = (first + last) / 2;//确定中间元素 if(num[mid] > target) { last = mid-1; //mid已经交换过了,last往前移一位 } else if(num[mid] < target) { first = mid+1;//mid已经交换过了,first往后移一位 } else //判断是否相等 { printf("查找次数:%d\n",counter); return 1; } } printf("查找次数:%d\n",counter); return 0; } int main(void) { int flag = 0,target; int num[10] = {1,2,3,4,5,6,7,8,10}; while(1) { printf("请输入您要查找的数字:\n"); scanf("%d",&target); flag = Bin_Search(num,10,target); if(flag) printf("已经找到该数字!!\n"); else printf("无该数字!!\n"); } return 0; } 
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216824.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午10:58
下一篇 2026年3月18日 上午10:59


相关推荐

  • ViewPager实现画廊效果「建议收藏」

    ViewPager实现画廊效果「建议收藏」开个头关键类publicclassMyPageTransformerimplementsViewPager.PageTransformer{privatestaticfinalfloatMIN_SCALE_X=1.0f;privatestaticfinalfloatMIN_SCALE_Y=0.8f;privatesta…

    2022年5月30日
    41
  • SQL2008数据库安装教程_sql server安装完找不到

    SQL2008数据库安装教程_sql server安装完找不到很多初学者在开始安装AdventureWorks2008时,虽然成功安装了,但是却发现其他的数据库都有,就偏偏没有AdventureWorks2008,就如下图所示: 最近很多人问这个问题的解决办法,所以还是有必要写这篇文章的。其实解决的办法很简单:依次【开始菜单】à【MicrosoftSQLServer200n】à【配置工具】à【SQLServer配置管理器】,打开如下图所示: 然后选择【SQLSERVER(MSSQLSERVER)】,右键选择属性,如下图所示,勾选前

    2025年10月31日
    6
  • 算术平均数、几何平均数、

    算术平均数、几何平均数、之所以称之为几何平均数 主要是从数学参数的物理意思上划分的 我们知道算术平均数 a b 2 体现纯粹数字上的关系 而根号 ab 称为几何平均数 这个体现了一个几何关系 即过一个圆的直径上任意一点做垂线 直径被分开的两部分为 a b 那么那个垂线在圆内的一半长度就是跟号 ab 并且 a b 2 根号 ab 这就是它的几何意思 也是称之为几何平均数的原因 调和平均数一天 毕达哥拉斯走过一个

    2026年3月18日
    1
  • <input type=file>文件上传

    <input type=file>文件上传<input>type类型为file时使得用户可以选择一个或多个元素以提交表单的方式上传到服务器上,或者通过 JavaScript 的FileAPI对文件

    2022年7月4日
    33
  • 基于stm32蓝牙智能小车设计

    基于stm32蓝牙智能小车设计前言:本文描述了一个由STM32微处理器、步进电机、蓝牙,L298N等模块构成的。该系统采用STM32微处理器为核心,在MDK环境下进行编程,通知控制L298N模块IN1~IN4引脚的高低电平进而控制电机的转动方向,使小车产生不同的转动模式。控制小车的转动模式通过蓝牙模块来实现,利用手机蓝牙助手和蓝牙模块相通,进而控制小车的各种运转模式。代码、蓝牙Androidapk地址:https://g…

    2022年10月18日
    5
  • GPT-5.4 深夜上线!百万上下文+原生操作电脑,OpenClaw 天选模型来了!【附GPT升级教程】

    GPT-5.4 深夜上线!百万上下文+原生操作电脑,OpenClaw 天选模型来了!【附GPT升级教程】

    2026年3月15日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号