《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

目录
相关文章
|
8月前
LeetCode题:174. 地下城游戏
LeetCode题:174. 地下城游戏
71 0
LeetCode题:174. 地下城游戏
|
7月前
2022蓝桥杯大赛软件类省赛真题 修剪树木
2022蓝桥杯大赛软件类省赛真题 修剪树木
29 0
|
8月前
【编程题-错题集】kotori和气球(组合数学)
【编程题-错题集】kotori和气球(组合数学)
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
|
算法 搜索推荐
三大基础排序算法——我欲修仙(功法篇)
三大基础排序算法——我欲修仙(功法篇)
167 0
|
机器学习/深度学习 人工智能 算法
LeetCode 周赛 345(2023/05/14)体验一题多解的算法之美
大家好,我是小彭。这场周赛是 LeetCode 第 345 场单周赛,整体难度不高,我们使用一题多解的方式强化练习。
140 0
|
机器学习/深度学习
【蓝桥杯集训·每日一题】 AcWing 3996. 涂色
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 区间DP Unique函数
126 0
|
存储 人工智能 算法
【蓝桥杯集训·每日一题】AcWing 3305. 作物杂交
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 Spfa算法
131 0
|
Java
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
171 0
|
机器学习/深度学习 安全