网站开发虚拟主机管理系统陕西网页设计培训

张小明 2026/3/12 14:07:19
网站开发虚拟主机管理系统,陕西网页设计培训,信息流投放平台有哪些,网站首页框架图二分查找的定义#xff1a;高效的搜索算法#xff0c;核心每次搜索将目标值范围缩小一半#xff0c;逐近逼近目标值#xff0c;算法的时间复杂度缩小到O#xff08;logn#xff09;也叫做折半查找算法。用法#xff1a;必须在有序的数组有序的区间内#xff0c;我们想要…二分查找的定义高效的搜索算法核心每次搜索将目标值范围缩小一半逐近逼近目标值算法的时间复杂度缩小到Ologn也叫做折半查找算法。用法必须在有序的数组有序的区间内我们想要找到一个目标值targe首先查询中间的下标如果小于目标值升序就向上对半找找到大于或者等于目标值降序反之大于也是同一个算法。例如我们的目标值是4首先第一个判定的是mid值7然后74,因为降序就查找left——mid/2的值一般为向下取整leftmid-left/2为34,然后在对半找到4。运用有序数组中的元素查找:eg在一个升序的数组中查找目标值是否存在找到一个目标值的下标或者判断插入位置。查找边界问题找到数组中第一个大于等于目标值的位置。找到数组中最后一个小于等于目标值的位置。处理重复元素时确定目标值的起始位置和结束位置。动态问题在动态数据结构中二分查找可以结合其他算法使用例如在动态更新的有序数组中快速查找目标值。数据库索引的实现中二分查找用于加速检索。注意事项数组必须有序二分查找只能在有序数组或区间中使用。边界条件需要正确处理左右边界避免死循环。单调性问题的解需要具有单调性才能通过二分查找优化。核心函数首先我们要确定好我们的返回值因为要查找下标也好查找targe也好是一个整形int(当然你也可以为指针double嘛根据自己的需求的)我们这里的话函数名就设置为binarySearch。参数就是我们的数组arr[],lentarge//用len来传入我们的最后一位元素的下标嘛len-1最右边最左就是0。// 二分查找有序升序数组返回目标值下标未找到返回-1 int binarySearch(int arr[], int len, int target) { int left 0; // 左边界 int right len - 1; // 右边界闭区间 [left, right] while (left right) { // 循环条件闭区间不为空 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; // 未找到 }while当中我们的判断条件就是我们的判断区间不能为空中级的mid算法跟我上面的一样的中该中间的判断就是是目标值在左边在右边只为缩小范围有人或许会问如果有相同的targe怎么办呢这个我们只需要找到目标值之后接着偏移这个一般来说是用在找到第一个下标的目标值下面就是我们的主函数测试代码了主函数调试测试int main() { int arr[] {1, 3, 5, 7, 9, 11}; int len sizeof(arr) / sizeof(arr[0]); int target 7; int index binarySearch(arr, len, target); if (index ! -1) { printf(目标值 %d 的下标%d\n, target, index); } else { printf(未找到目标值\n); } return 0; }我们初始化一个数组然后定义一个目标值然后寻找这个可以联合我们上周学习的输入不定长整数然后在输入一个目标值然后查询输出下标。非常感谢大家的观看和支持这周的话我会学习和做一个小项目链表的通讯录管理可能要打稿这个里面就包含我们前面所学的进阶指针堆的内存和栈的内存链表我们的二叉树这个做完之后我回去接着发布一些学习内容关于linux和io文件的一些基础和学习希望大家能喜欢。相互学习QQ群号238038904
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

免费建站 永久织梦网站被做跳转

探索Gnutella网络:分布式技术的革新力量 1. Gnutella网络概述 Gnutella是一个独特的互联网系统,与传统的互联网应用如电子邮件、网页浏览和文件传输协议(FTP)不同。传统应用建立在互联网的基础硬件之上,而Gnutella则创建了一个应用层网络,其基础设施处于不断变化之中。…

张小明 2026/3/5 2:39:52 网站建设

快速建立平台网站开发网站模板设计青岛百度seo代理

开发一套3D家居设计系统是一项高度综合的技术工程,它结合了图形渲染、空间算法、以及复杂的软装数据库管理。无论您是自主开发还是外包,管理的核心在于平衡视觉表现力、交互流畅度以及生产端的协同(如一键生成报价或拆单)。以下是…

张小明 2026/3/5 2:39:53 网站建设

鱼台县建设局网站在线手机动画网站模板

GeoJSON.io:零基础地理数据编辑工具完全指南 【免费下载链接】geojson.io A quick, simple tool for creating, viewing, and sharing spatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geojson.io 你是否曾经面对复杂的地理信息系统软件望而却步&…

张小明 2026/3/5 2:39:54 网站建设

网站速度优化方案建筑模板厂家大全

Figma中文界面插件完整教程:3步实现专业设计工具无障碍使用 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma英文界面而烦恼?想要快速上手这款专业设计…

张小明 2026/3/5 2:39:55 网站建设