算法-二分查找
📅 2026/7/14 1:50:57
👁️ 次浏览
二分查找 (Binary Search)像“猜数字”游戏一样每次直接猜正中间的数。如果猜大了就把右半边的范围全扔掉如果猜小了就把左半边的范围全扔掉。通过不断“折半”缩小查找范围每次都能排除掉一半的数据从而极其高效地找到目标元素。核心代码#include stdio.h // 二分查找函数在有序数组中查找目标值 int binarySearch(int arr[], int n, int target) { int left 0; // 左边界指针 int right n - 1; // 右边界指针 // 当左边界小于等于右边界时说明查找区间依然有效 while (left right) { // 计算中间位置(这种写法可防止 leftright 过大导致整型溢出) int mid left (right - left) / 2; if (arr[mid] target) { return mid; // 找到目标直接返回下标 } else if (arr[mid] target) { left mid 1; // 中间值比目标小说明目标在右半部分收缩左边界 } else { right mid - 1; // 中间值比目标大说明目标在左半部分收缩右边界 } } return -1; // 循环结束仍未找到返回 -1 } // 打印数组的辅助函数 void printArray(int arr[], int n) { for (int i 0; i n; i) { printf(%d , arr[i]); } printf(\n); } int main() { // 注意二分查找的前提是数组必须有序 int arr[] {12, 22, 25, 34, 64}; int n sizeof(arr) / sizeof(arr[0]); int target 25; printf(数组内容); printArray(arr, n); int result binarySearch(arr, n, target); // 调用二分查找 if (result ! -1) { printf(目标值 %d 的下标为%d\n, target, result); } else { printf(数组中未找到目标值 %d\n, target); } return 0; }示例演示{12, 22, 25, 34, 64}目标值 target 25第 1 次查找在整体范围 {12, 22, 25, 34, 64} 中查找目标通过中间元素判断目标在哪半边。确定边界left 0right 4。计算中点mid 0 (4 - 0) / 2 2。中间元素 arr[2] 25。比较25 25命中目标第 1 次结束直接找到目标返回下标 2。(为了演示折半过程我们假设目标值 target 34)第 1 次查找在整体范围 {12, 22, 25, 34, 64} 中查找确定边界left 0right 4。计算中点mid 2中间元素 arr[2] 25。比较25 34说明目标在右侧。更新左边界 left mid 1 3。当前查找范围缩小为[34, 64]第 2 次查找在剩余范围 {34, 64} 中查找确定边界left 3right 4。计算中点mid 3 (4 - 3) / 2 3。中间元素 arr[3] 34。比较34 34命中目标第 2 次结束找到目标返回下标 3。复杂度时间复杂度是\(O(logn)\)(每次查找都能排除一半的数据查找次数随数据规模呈对数级增长)空间复杂度是\(O(1)\)(迭代法仅需常数级的额外空间用于维护左右边界和中点指针)
1. 项目概述:为什么我们需要在C中谈多线程?如果你写过C,并且你的程序需要处理超过一件“事情”——比如,一个游戏既要渲染画面,又要响应用户输入,还要在后台加载资源;或者一个服务器需要同时处理…
📅 2026/7/14 1:50:57
本文还有配套的精品资源,点击获取
简介:一套即开即用的Python图像处理教学实践工具,基于PyQt5搭建完整图形界面,集成缩放、高斯/椒盐加噪、均值/高斯平滑、拉普拉斯锐化、直方图均衡化、JPEG压缩编码、Sobel/Canny边缘检测、Ha…
📅 2026/7/14 1:50:57
终极Steam创意工坊下载器WorkshopDL:跨平台模组下载完全指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL
还在为无法跨平台下载Steam创意工坊模组而烦恼吗&#…
📅 2026/7/14 1:49:57
1. 项目概述:从I2C时序到传感器集线器的系统级思考在嵌入式视觉系统,尤其是车载ADAS(高级驾驶辅助系统)的设计中,我们常常面临一个核心矛盾:传感器数量的激增与系统布线复杂度、信号完整性之间的博弈。早期…
📅 2026/7/15 1:22:35
Intel平台驱动开发:openEuler内核中的硬件支持与集成方案 【免费下载链接】intel-kernel The openEuler intel-kernel is for enabling next generation Intel platform features. It provides the foundation of Intel new platform support for openEuler softwar…
📅 2026/7/15 1:22:35
1. CIFAR-100数据集基础认知当你第一次拿到CIFAR-100的二进制文件时,可能会被它的数据格式搞得一头雾水。这个经典数据集包含60000张32x32像素的彩色图像,分为100个精细类别(如"苹果"、"卡车"),这…
📅 2026/7/15 1:22:35
1. MBTiles离线切片包的优势与应用场景MBTiles作为一种基于SQLite数据库的地图瓦片存储规范,已经成为离线地图领域的黄金标准。我第一次接触MBTiles是在2015年的一个野外测绘项目,当时团队需要在无网络环境下使用移动设备加载高精度地形图。传统的散列瓦…
📅 2026/7/15 1:22:35
最近在技术圈里有个很有意思的现象:ChatGPT 桌面版在短短一天内的用户增长量超过了之前两周的总和。作为一名长期关注 AI 工具落地的开发者,我意识到这不仅仅是市场热度的体现,更反映了开发者和技术用户对高效 AI 工具的真实需求。本文将全面…
📅 2026/7/15 1:22:35
说实话,刚听到“2019天蝎座GEO”这词儿的时候,我脑子里第一反应是:这车是火星来的吗?毕竟那会儿网上关于它的消息乱成一锅粥,有的说它是神车,有的说它是工业垃圾。我也没忍住,去二手车市场转悠了好几圈,最后兜兜转转,还是跟这台老伙计结了缘。今天不整那些虚头巴脑的参…
📅 2026/7/15 1:22:18
1. COM线程模型基础与CoInitializeEx核心作用在Windows平台开发中,组件对象模型(COM)的线程处理机制一直是开发者必须掌握的底层知识。作为COM初始化的门户函数,CoInitializeEx不仅决定了对象在何种线程环境下运行,更影响着整个组件的并发性能…
📅 2026/7/15 0:00:17
1. 为什么M芯片Mac用户需要降级到Monterey? 去年刚拿到M2芯片的MacBook Pro时,我第一时间升级到了Ventura系统。结果第三天就遇到了微信闪退、Final Cut Pro渲染卡顿的问题。后来在开发者论坛发现,不少专业软件对Ventura的适配都存在问题。这…
📅 2026/7/15 0:00:17
1. 背景与核心概念在AI大模型快速发展的今天,许多开发者和研究者都面临一个现实问题:如何在有限的硬件预算下实现高效的本地大模型部署。特别是对于个人开发者和小型团队来说,购买最新的高端显卡成本高昂,而利用现有的或二手硬件资…
📅 2026/7/15 0:00:17
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/14 6:35:02
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/14 12:06:52
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/14 7:15:18
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/14 15:11:56
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/13 19:47:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/14 15:11:56