《C游记》 番外篇(壹)二分查找显神威 猜数游戏趣味生

简介: 《C游记》 番外篇(壹)二分查找显神威 猜数游戏趣味生

1.gif

目录

(壹)二分查找

📚  1.1  何为二分查找

📚  1.2  二分查找的原理

📚  1.3  查找条件

📚  1.4  代码实现

(贰)猜数字游戏

📚  2.1  菜单初始化

📚  2.2  核心函数

📚  2.3  main函数

📚  2.4  总代码


✨✨ 文章Gitee仓库:CSDN_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  二分查找的原理

升序数列为例,比较一个元素与数列中的中间位置的元素的大小如果比中间位置的元素大,则继续在后半部分的数列中进行二分查找;如果比中间位置的元素小,则在数列的前半部分进行比较;如果相等,则找到了元素的位置。每次比较的数列长度都会是之前数列的一半,直到找到相等元素的位置或者最终没有找到要找的元素。

动图演示:(于顺序查找相比较)2.gif

📚  1.3  查找条件

二分查找的前提条件是有序数列,普通查找则不需要。

查找到返回该元素的下标,否则返回-1。

普通查找的时间复杂度为O(N), 二分查找的时间复杂度为O(logN)。

N/2/2···/2=1,2^m=N(m为折半查找的次数),那么m=log(N),二分查找的时间复杂度就为O(logN)。


📚  1.4  代码实现3.gif



🎨  1.4.1  初始化数据

1.png


 🎨  1.4.2  核心函数2.png4.gif

(贰)猜数字游戏

📚  2.1  菜单初始化3.png


📚  2.2  核心函数4.png


📚  2.3  main函数5.png


📚  2.4  总代码

#include <stdio.h>#include <time.h>#include <stdlib.h>voidmenu()
{
printf("**********************************\n");
printf("*********** 1.play     ***********\n");
printf("*********** 0.exit     ***********\n");
printf("**********************************\n");
}
//RAND_MAX--rand函数能返回随机数的最大值。voidgame()
{
intrandom_num=rand() %100+1;
intinput=0;
while (1)
    {
printf("请输入猜的数字>:");
scanf("%d", &input);
if (input>random_num)
        {
printf("猜大了\n");
        }
elseif (input<random_num)
        {
printf("猜小了\n");
        }
else        {
printf("恭喜你,猜对了\n"); break;
        }
    }
}
intmain()
{
intinput=0;
srand((unsigned)time(NULL));
do    {
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
        {
case1:
game();
break;
case0:
break;
default:
printf("选择错误,请重新输入!\n");
break;
        }
    } while (input);
return0;
}

6.gif7.gif

目录
相关文章
另辟蹊径,利用宝塔快速搭建一个VuePress博客
另辟蹊径,利用宝塔快速搭建一个VuePress博客
2010 0
另辟蹊径,利用宝塔快速搭建一个VuePress博客
|
5月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的民宿客房预订管理系统源码运行
基于Python+Vue开发的民宿客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的民宿客房预订管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
141 8
|
前端开发 JavaScript 数据挖掘
《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)(下)
《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)
139 1
|
运维 NoSQL 安全
debug学习
debug学习
239 65
|
10月前
|
编解码 人工智能 调度
Meissonic:高效高分辨率文生图重大革新
Meissonic的新模型,仅1b参数可实现高质量图像生成,能在普通电脑上运行,未来有望支持无线端文本到图像的生成。
|
存储 数据安全/隐私保护 UED
Vue3信息提示(Modal)
这是一个基于 Vue2 的信息提示模态框组件,支持多种弹窗类型(如 info、success、error 等),并提供丰富的自定义属性,包括按钮文本、按钮类型、居中方式等。该组件可根据内容自动调整高度,并兼容不同按钮样式配置。预览效果展示了不同类型的模态框及其样式。代码中详细介绍了组件的实现方式和使用方法。
391 1
Vue3信息提示(Modal)
查询快递物流信息
摘要:使用阿里云市场第三方接口,可以根据快递单号查询快递物流信息。需获取接口开通地址并找到一个快递单号,接口返回数据包括快递公司、状态、详细轨迹等。示例中展示了查询结果,包括快递状态(已签收)、最新状态描述、物流轨迹详情等。
1750 4
|
机器学习/深度学习 人工智能 自然语言处理
OneIE:A Joint Neural Model for Information Extraction with Global Features论文解读
大多数现有的用于信息抽取(IE)的联合神经网络模型使用局部任务特定的分类器来预测单个实例(例如,触发词,关系)的标签,而不管它们之间的交互。
334 0
|
存储 Android开发
Eclipse安装Flowable Eclipse Designer插件实现图形建模BPMN 2.0流程图
Eclipse安装Flowable Eclipse Designer插件实现图形建模BPMN 2.0流程图
749 0