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安全错误
数据库的锁怎样保障安全
金铲铲服务器所在地
多维度网络安全
宁晋软件开发商
博雅数据库河南理工类录取分数线
未来互联网络技术研究中心
通化市网络安全宣传
手机软件开发到8核多
江苏智能软件开发厂家报价
职工网络安全培训信息
非结构化数据库设计
赣州软件开发定制
知网数据库可以跨库检索吗
终端算力和服务器算力
idea数据库端口
网络技术的主要
淄博文件审批oa软件开发
数据库可储存
怎么设饥荒联机版专用服务器
孔思宇 软件开发
服务器管理需要
密码机和签名认证服务器的区别
淮安优佳软件开发有限公司
labview插入sql数据库
软件开发项目有什么特征
网络安全典型技术
现代化法制主题体验馆软件开发
lua 数据库
app软件开发需要哪些要点
山东数据网络技术优势
城管局网络安全宣传周方案