C语言如何使用二分查找实现猜数游戏
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章给大家分享的是有关C语言如何使用二分查找实现猜数游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。(壹)二分查找1.1 何为二分查找折半查找,也称二分查找,在某些情
千家信息网最后更新 2025年11月10日C语言如何使用二分查找实现猜数游戏
这篇文章给大家分享的是有关C语言如何使用二分查找实现猜数游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
(壹)二分查找
1.1 何为二分查找
折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高。但是该算法的使用的前提是静态查找表中的数据必须是有序的。
例如,在{5,21,13,19,37,75,56,64,88 ,80,92}这个查找表使用折半查找算法查找数据之前,需要首先对该表中的数据按照所查的关键字进行排序:{5,13,19,21,37,56,64,75,80,88,92}。
1.2 二分查找的原理
以升序数列为例,比较一个元素与数列中的中间位置的元素的大小,如果比中间位置的元素大,则继续在后半部分的数列中进行二分查找;如果比中间位置的元素小,则在数列的前半部分进行比较;如果相等,则找到了元素的位置。每次比较的数列长度都会是之前数列的一半,直到找到相等元素的位置或者最终没有找到要找的元素。
动图演示:(于顺序查找相比较)
???? 二分查找的前提条件是有序数列,普通查找则不需要。
查找到返回该元素的下标,否则返回-1。
普通查找的时间复杂度为O(N), 二分查找的时间复杂度为O(logN)。 N/2/2···/2=1,2^m=N(m为折半查找的次数),那么m=log(N),二分查找的时间复杂度就为O(logN)。
1.4 代码实现
1.4.1 初始化数据
1.4.2 核心函数
(贰)猜数字游戏
2.1 菜单初始化
2.2 核心函数
2.3 main函数
2.4 总代码
#include#include #include void menu(){ printf("**********************************\n"); printf("*********** 1.play ***********\n"); printf("*********** 0.exit ***********\n"); printf("**********************************\n");} //RAND_MAX--rand函数能返回随机数的最大值。void game(){ int random_num = rand() % 100 + 1; int input = 0; while (1) { printf("请输入猜的数字>:"); scanf("%d", &input); if (input > random_num) { printf("猜大了\n"); } else if (input < random_num) { printf("猜小了\n"); } else { printf("恭喜你,猜对了\n"); break; } }} int main(){ int input = 0; srand((unsigned)time(NULL)); do { menu(); printf("请选择>:"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: break; default: printf("选择错误,请重新输入!\n"); break; } } while (input); return 0;}
感谢各位的阅读!关于"C语言如何使用二分查找实现猜数游戏"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
元素
数列
位置
函数
数据
复杂
复杂度
时间
算法
语言
普通
有序
内容
前提
数字
更多
核心
篇文章
顺序
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安卓pda开发常用数据库
特征值和特征向量计算的软件开发
河南易宅网络技术
北京服务器搬迁注意事项
网络安全大学生暑假实习
i5用服务器
amd 入门级服务器
软件开发工作室赚钱思路
石材贴图软件开发
易能者软件开发
网络安全学习机器
电厂网络安全ppt
软件开发 pattern
数据库连接到mysql
珠海物业软件开发公司
华为鲲鹏服务器直销厂家
软件开发期所应包含的内容
数据库文件倒不进去怎么办
公安机关网络安全检察部门
燃烧的意志服务器选择
web缓存服务器搭建
edb数据库转换
协赢网络技术有限公司
河北企业软件开发定制价格
服务器升级后没桌面
软件开发 pattern
合肥移远通信软件开发加班多吗
连云港手机软件开发服务
软件开发用i5-6500
wow转服去哪个服务器好