首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言函数二分查找(折半查找)

C语言函数二分查找(折半查找) 参考视频讲解哔哩哔哩比特鹏哥的视频 ——链接 二分查找 #include //二分查找 //在一个有序数组中查找具体的某个数 //如果找到了返回...//查找了一次范围就缩小了一半,这样的速度是比较快的 //这就叫二分查找(折半查找) //那么怎么找到中间元素的下标呢 //原来的数组是1 2 3 4 5 6 7 8 9 10 //他们的下标是...//左右下标又可以求出一个平均值是7,又找到一个对应的元素是8 //所以这一组查找范围的中间元素是8 //用8再跟我要找的元素比一下,比我找的元素要大 //说明我要查找的元素在8的左边 //这时候要查找的范围被再次的缩小成了...//一直找到左右下标无法确定新的范围,他们之间没有元素可以被查找的时候,结束,说明没有找到 //如果在某一次查找的时候,找到了,下标相等了,说明找到了,把下标给过来 int number_search...//在这里要进行很多次 //每一次二分查找的第一步是找被查找范围的中间元素的下标 while (left <= right) { int mid = (right + left

84820
您找到你想要的搜索结果了吗?
是的
没有找到

C语言】二分查找与冒泡排序

✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 二分查找 在有序数组中查找具体的某个数字n,...我们一般从中间元素开始找,查一次去掉一半数字,这种方法我们给它取名为折半查找即为二分查找,效率大大提高!怎么理解呢?...如果有2的32次方个数字,我们最多只需查找32次,而一个一个数运气不好却是2的32次方次。...如果查找的元素小于arr[mid],这说明查找的元素在中间元素的左边,这时候最右边元素right = mid-1,同理,如果查找的元素大于arr[mid],这说明了查找元素在中间元素的右边,这时候最左边元素...left = mid+1.如果出现left>right的情况,这也就说明了数组中并没有存在查找的元素。

95330

数据结构——二叉查找树(C语言)

二叉查找树,也称作二叉搜索树,有序二叉树,排序二叉树,而当一棵空树或者具有下列性质的二叉树,就可以被定义为二叉查找树: 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值。...任意节点的左、右子树也分别为二叉查找树。 没有键值相等的节点。 二叉查找树相比于其他数据结构的优势在查找、插入的时间复杂度较低,为O(log n)。...二叉查找树是基础性数据结构,用于构建更为抽象的数据结构,如集合、multiset、关联数组等。对于大量的输入数据,链表的线性访问时间太慢,不宜使用。...下面来看我们为二叉查找树定义的抽象行为: #ifndef _Tree_H struct TreeNode; typedef struct TreeNode *Position; typedef struct...: %d\n", FindMax(T)->Element); printf("最小值: %d\n", FindMin(T)->Element); return 0; } 编译运行这个C文件

1.8K41

C语言操作redis数据库

前言 redis(Remote Dictionary Server)是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库--来自维基百科。...由于其读写性能高、数据结构丰富、支持主从复制、支持持久化等其他特性,使得redis成为当前最流行的key-value型数据库。本文将简单介绍c语言中如何操作redis数据库。...准备工作 hiredis安装 hiredis是redis官方推荐的基于C接口的客户端组件,它提供接口,供c语言调用以操作数据库。...,参数为数据库的ip地址和端口,通常默认端口为6379。...实例 实例通过redis数据库的hash表存储以下学生信息: 字段名 含义 sid 学号 name 学生姓名 gender 学生性别 major 专业 c语言描述如下: #define SID_MAX_LENGHT

3.5K40

二分查找:在有序数组中快速查找目标元素(c语言

在计算机科学中,二分查找是一种高效的搜索算法,用于在有序数组中查找特定元素。它的原理简单却强大,可以在较大规模的数据集中快速定位目标元素。...本文将深入探讨二分查找算法的原理和实现,并展示如何在C语言中应用该算法,正在使用其他语言的小伙伴们也可以看下面是思路介绍,不妨自己去用其他语言尝试实现。 什么是二分查找算法?...为了使用二分查找,首先需要确保数组是有序的。这是因为二分查找是基于有序数组的特性来进行查找的。如果数组无序,我们需要先对数组进行排序,然后再进行二分查找。...C语言实现示例。...通过运行上述代码,您将会得到目标值在数组中的索引,或者得到目标值不存在的提示       通过本文的介绍,我们深入了解了二分查找算法的原理和在C语言中的应用。

20210

C语言每日一题(6)二分查找

思路分析 1.二分查找的基本思想 二分查找的基本思想是通过比较中间元素与目标元素的大小来不断缩小搜索范围,直到找到目标元素或确定目标元素不存在为止。其基本步骤如下: 1....重复步骤2和步骤3,在新的搜索范围内进行二分查找,直到找到目标元素或确定目标元素不存在为止。如果搜索范围为空,即开始索引大于结束索引,则目标元素不存在。...二分查找的关键在于每次通过比较中间元素来确定目标元素的可能位置,将搜索范围缩小一半,从而大大减少了搜索的次数,提高了查找效率。但前提是数组或列表必须是有序的。...= nums[mid] && low <= high) { //若当前mid值不为查找值,更新查找区域。

7510

【MySQL】C语言连接数据库

一、安装 MySQL 库 我们之前学习数据库都是在 Linux 的 mysql 客户端下以纯命令行的方式操作的,但其实,我们也可以使用 C/C++/Java/Python 等语言来连接数据库,向 mysqld...不过,在这之前,我们需要先安装 MySQL 对应的库,这里我们以 C 语言连接数据库为例。...关于 MySQL 的 C语言库,我们可以直接到 MySQL 官网中去下载,然后 rz 上传到 Linux 中解压。...MYSQL 和C语言文件 FILE 一样,本质上都是一个结构体。...设置连接字符集 需要注意的是,我们之前在创建数据库时默认使用的字符集是 utf8,而C语言连接数据时默认的字符集是 latin1 的,这就会导致我们在向表中插入中文数据时,由于字符集不匹配,最终数据库中存储的数据显式出来是乱码

56220

C语言 | C++批量数据数据库高效操作

数据库优化法则归纳为5个层次: 1、  减少数据访问(减少磁盘访问) 2、  返回更少数据(减少网络传输或磁盘访问) 3、  减少交互次数(减少网络传输) 4、  减少服务器CPU开销(减少CPU及内存开销...) 5、  利用更多资源(增加资源) 数据批量处理一般有两种情况(针对减少磁盘访问): 1、数据从一个数据库表A迁移到另一个数据库表B,这种情况可以每次取一定数量(例如:5条)进行批量插入。...语句如下: 在insert中写多个value    INSERT INTO table(field1,field2,field3)VALUES(‘a’,’b’,’c’),(‘a’,’b’,’c’),(‘...a’,’b’,’c’),(‘a’,’b’,’c’),(‘a’,’b’,’c’); 2、数据是实时数据,比如服务器接收到的数据,数据可能在短时间有大量数据上传,也可能长时间没有,数据上传太快对与服务器的交互性能有较大的要求...,如果可以批量插入,减少访问数据库,一次存入较多的数据,来提高服务器性能; 可以用vector或者其他合适的数据结构来临时存储数据,当达到预定设置的阈值时进行一次数据处理,比如vector.size>=

2K88
领券