折半查找算法 ,又称二分查找。(C语言)

2023-11-19

分析:  此题目的是找到k=7的数(k的值可随便更改,如果数组中没有k对应的值,则找不到这个数字),并且输出查找次数。

代码:

#include<stdio.h>
int main() {
    int array[10] = { 1,2,3,4,5,6,7,8,9,10 };
    int k = 7;     /*找到7这个数字*/
    int sz = sizeof(array) / sizeof(array[0]);   /*计算元素个数*/
    int left = 0;
    int right = sz - 1;
    int index = 0;
    while (left<=right)
    {
        int mid = (left + right) / 2;
        index++;
        if (array[mid] > k)
        {
            right = mid - 1;
        }
        else if (array[mid] < k)
        {
            left = mid + 1;
        }
        else
        {
            printf("找到了%d\n",k);
            break;
        }
        
    }
    printf("查找了%d次\n", index);
    if (left > right)
    {
        printf("找不到\n");
    }
    return 0;
}

运行结果:

 折半查找(Binary Search)又称为二分查找它的前提是线性表中的记录必须是关键码有序(通常从小到大有序),线性表必须采用顺序存储。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

折半查找算法 ,又称二分查找。(C语言) 的相关文章

随机推荐

  • sql的递归查询

    在oracle中通过connect by prior来实现递归查询 分类 Oracle随笔 2007 02 16 09 13 11278人阅读 评论 3 收藏 举报 connect by 是结构化查询中用到的 其基本语法是 select f
  • vue3 组件传值之 props 与 attrs 的区别

    最近在学习 vue3 整理了一些学习笔记 如果有人看到 并发现我有写的不对的地方 欢迎指正 用过 vue 组件传值的小伙伴都知道 props 这个属性 而 attrs 属性可以看做 props 的加强版 用来简化 vue 组件传值 那么这两
  • 条件变量(condition variable)详解

    原理 假设我们需要解决这样一个问题 一个列表记录需要处理的任务 一个线程往此列表添加任务 一个线程processTask处理此列表中的任务 这个问题的一个关键点在于processTask怎么判断任务列表不为空 一般有两种方法 一 proce
  • Mathematica的Combinatorica`程序包来研究分拆

    文章目录 引论 步骤 0x00 导入程序包 0x01 Partitions 0x02 Compositions Log 引论 分拆可以看我的这篇文章 在线的Combinatorica 程序包文档可以看这个 在线的Combinatorica
  • 我所理解的RSA加密算法

    RSA简介 非对称加密算法 有一对公私钥组成 1977年由三位数学家Rivest Shamir 和 Adleman 设计了一种算法 没错RSA是三个人名字的首字母 密钥越长越难破解 1024位目前无法破解 因此1024位的RSA密钥基本安全
  • 实现instanceof操作符

    实现instanceof操作符 const theInstanceof function object constructor if typeof object object typeof constructor function retu
  • Spark学习(文件读取路径)

    在不同的启动模式下 加载文件时的路径写法是不一样的 对于local模式下 默认就是读取本地文件 而在standlone或者yarn client 或者cluster模式下 默认读的都是hdfs文件系统 这几种模式下很难读取本地文件 这是很显
  • Qt 信号和槽的小问题(新手向)

    Qt项目报错 static assertion failed Signal and slot arguments are not compatible 信号和槽的参数不对应 例 槽函数 void A give QString a qDebu
  • 内存数据库-3-[redis]的架构原理和部署模式

    参考redis三种模式对比 Redis 是一个开源的 key value 存储系统 由于出众的性能 大部分互联网企业都用来做服务器端缓存 1 单实例模式 问题 1 内存容量有限 2 处理能力有限 3 无法高可用 Redis 在3 0版本前只
  • 我的股票项目环境配置过程记录(含python打包方法linux windows)

    股票项目从源码配置环境 V1 0 Windows 如果只是跑只需要这两个 pip3 install PyQt5 i https pypi douban com simple pip install U matplotlib pip inst
  • 直流-直流(DC-DC)变换电路

    直流 直流 DC DC 变换电路 可以将一种直流电源经过变换电路后输出另一种具有不同输出特性的直流电源 可以是一种固定电压或可调电压的直流电 按照电路拓扑结构的不同 DC DC变换电路可以分成两种形式 不带隔离变压器的DC DC变换电路和带
  • Tomcat7安装及配置教程

    Apache Tomcat7 0安装及配置教程 Apache Tomcat7 0官方网站链接 http tomcat apache org apache tomcat 7 0 73 windows x64 先解压下载的压缩包 然后在bin目
  • 使用express封装一个简单的http代理服务器以及手动设置Access-Control-Allow-Origin解决跨域问题

    一 跨域是什么 先来了解一下什么是跨域 才能知道如何解决跨域问题 跨域 出于浏览器的同源策略限制 使浏览器不能执行其他网站的脚本 同源策略是浏览器对 javascript 施加的安全限制 所谓同源就是指在同一个域内 就是两个地址具有相同的协
  • 自学Java的知识盲点(面向对象编程)

    目录 1 类和对象 1 1对象 属性 行为 1 1 1属性 成员变量 1 2类和对象的内存分配机制 1 3构造方法 1 3 1this关键字 1 4访问修饰符 2 封装 2 1定义 3 继承 ctrl h可以看继承关系 3 1基本介绍 本质
  • VS2019配置QT及打开项目报错处理

    放在一起是因为配置的拖了比较久 于是就放一起 以后要是遇到了 能够处理 也希望对遇到同样问题的能有所参考 对于下载安装qt的教程就不写了 因为已经好些优秀的文章了 这里把一位博主的地址放一下 可以看看qt下载 里面分享了下载的国内镜像地址
  • STM32CubeMAX:H库函数整理笔记

    GPIO HAL GPIO TogglePin GPIO TypeDef GPIOx uint16 t GPIO Pin 功能 用于切换指定的GPIO引脚 HAL GPIO EXTI Callback uint16 t GPIO Pin 功
  • Windows应急响应-入侵排查

    Windows应急响应 入侵排查 1检测系统账户安全 查看服务器有没有可疑账户新增账户 Win R lusrmgr msc 看有没有新增加用户 查看服务器有没有隐藏用户克隆账户 第一步 Win R打开运行窗口 输入regedit打开注册表编
  • cehp 维护(二)常见告警维护

    零 修订记录 序号 修订时间 修订内容 1 2021 11 18 新增 一 摘要 笨猪主要介绍ceph常见告警及维护方法或过程中遇到的问题 二 环境信息 2 1 ceph版本 cephadmin proceph01 ceph v ceph
  • 为什么不发展三进制计算机,三进制计算机

    三进制计算机 是以三进法数字系统为基础而发展的计算机 三进制逻辑相比较现今的计算机使用二进制数字系统更接近人类大脑的思维方式 二进制计算规则非常简单但并不能完全表达人类想法 在一般情况下 命题不一定为真或假 还可能为未知 在三进制逻辑学中
  • 折半查找算法 ,又称二分查找。(C语言)

    分析 此题目的是找到k 7的数 k的值可随便更改 如果数组中没有k对应的值 则找不到这个数字 并且输出查找次数 代码 include