当前位置: 首页 > news >正文

初阶c语言(while循环二分法)

前言:

作业和那个不是一个级别的

内容:

3.在一个有序数组中查找具体的某个数字n。(讲解二分查找)

下标就是数组的下标,从0开始,有点难度,我头有点晕,就是大概知道了,写代码也写不出来的那种,等我晚上在写

先看下问题代码,这已经是我边看边写的代码了,还出错误了

#include <stdio.h>
int main()
{int arr[] = {1,2,3,4,5,6,7,8,9,10};int left = 0;int sz = sizeof(arr)/sizeof(arr[0]);int right = sz -1;int k = 7;while(left >= right){int mid = (left + right)/2; if(arr[mid] > k){left = mid + 1;	}else if(arr[mid] < k){right = mid -1;	}else{printf("找到了,下标为:%d\n", mid);}}return 0;} 

正确的值

#include <stdio.h>
int main()
{
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int left = 0;
    int sz = sizeof(arr)/sizeof(arr[0]); //计算元素个数 
    int right = sz -1;                    //计算右边的下标 
    
    int k = 7;    //随机选择一个数,找出在数组是哪个下标 


    while(left <= right)     //循环遍历,找出下标 
    {
        int mid = (left + right)/2; //每次都需要重新计算,因为每次的left或right都会变 
        if(arr[mid] > k)     //如果下标的值大于实际值,则右边偏移 
        {
        right = mid - 1;    
        }
        else if(arr[mid] < k)  
        {
        left = mid +1;    
        }
        else
        {
        printf("找到了,下标为:%d\n", mid);
        break;                              //找到值,需要跳出循环,不然mid值不变,会一直循环 
        }
    
        
    }

    
    
    
    return 0;
 } 

http://www.lryc.cn/news/535510.html

相关文章:

  • 如何使用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天
  • Java_多线程
  • uniapp开发h5部署到服务器
  • 如何在个人电脑本地化部署Deepseek-R1大模型
  • Java中关于JSON的基本使用
  • 简化的动态稀疏视觉Transformer的PyTorch代码
  • PADS多层板减少层数
  • 你需要提供管理员权限才能删除此文件夹解决方法
  • 螺旋折线(蓝桥杯18G)
  • 常见的数据仓库有哪些?
  • 数据科学之数据管理|NumPy数据管
  • LSTM 学习笔记 之pytorch调包每个参数的解释
  • ASUS/华硕飞行堡垒9 FX506H FX706H 原厂Win10系统 工厂文件 带ASUS Recovery恢复
  • Unity使用iTextSharp导出PDF-04图形
  • JDBC如何连接数据库
  • Unity URP的2D光照简介
  • 【IC】AI处理器核心--第二部分 用于处理 DNN 的硬件设计
  • 从 0 开始本地部署 DeepSeek:详细步骤 + 避坑指南 + 构建可视化(安装在D盘)
  • 如何本地部署DeepSeek集成Word办公软件
  • Centos10 Stream 基础配置
  • 时间序列分析(三)——白噪声检验
  • ThinkPHP8视图赋值与渲染
  • 对贵司需求的PLC触摸的远程调试的解决方案
  • 2.12寒假作业
  • 记使用AScript自动化操作ios苹果手机
  • 【Apache Paimon】-- 16 -- 利用 paimon-flink-action 同步 kafka 数据到 hive paimon 表中
  • 基于 PyTorch 的树叶分类任务:从数据准备到模型训练与测试
  • 算法之 数论
  • Java 大视界 -- 人工智能驱动下 Java 大数据的技术革新与应用突破(83)
  • 【04】RUST特性