C语言如何使用二分查找实现猜数游戏
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,这篇文章给大家分享的是有关C语言如何使用二分查找实现猜数游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。(壹)二分查找1.1 何为二分查找折半查找,也称二分查找,在某些情
千家信息网最后更新 2024年11月25日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安全错误
数据库的锁怎样保障安全
选服务器端还是客户端
品质的软件开发培训
安徽网络技术服务经验丰富
浙江ntp网络时钟服务器配置
大数据网络技术基础课程
高清转场数据库
甘肃曙光服务器维修维保价格
web查询数据库连接
没有经验怎么学习网络技术
金周至网络安全宣传
信息安全的主要内容包括网络安全
没经验能做软件开发吗
万州网络技术有限公司
做好网络安全工作总结
服务器每秒承担多少接口并发
web服务器安全怎么做
服务器硬盘升级价格
杭州有余网络技术
识诈骗网络安全
软件开发人力租赁
梦幻西游河南哪个服务器稳定
济宁联想服务器代理客服电话
网络安全知识的手抄报四年级
主机能否直接和dns服务器通信
网络安全类网络工程
黎曼猜想与网络安全
花呗提额服务器调整中暂不可提额
数据库删除操作会出现错误的例子
网络技术公司账务处理
河北灵顿网络技术有限公司