最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言巧用二分查找實現(xiàn)猜數(shù)游戲

 更新時間:2022年02月09日 10:41:20   作者:玄澈_  
二分查找也稱折半查找(Binary?Search),它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結(jié)構(gòu),而且表中元素按關(guān)鍵字有序排列,本篇文章教你用二分查找編寫猜數(shù)字游戲

?? 文章Gitee倉庫:文章源代碼

(壹)二分查找

??  1.1  何為二分查找

折半查找,也稱二分查找,在某些情況下相比于順序查找,使用折半查找算法的效率更高。但是該算法的使用的前提是靜態(tài)查找表中的數(shù)據(jù)必須是有序的。

例如,在{5,21,13,19,37,75,56,64,88 ,80,92}這個查找表使用折半查找算法查找數(shù)據(jù)之前,需要首先對該表中的數(shù)據(jù)按照所查的關(guān)鍵字進行排序:{5,13,19,21,37,56,64,75,80,88,92}。

??  1.2  二分查找的原理

以升序數(shù)列為例,比較一個元素與數(shù)列中的中間位置的元素的大小,如果比中間位置的元素大,則繼續(xù)在后半部分的數(shù)列中進行二分查找;如果比中間位置的元素小,則在數(shù)列的前半部分進行比較;如果相等,則找到了元素的位置。每次比較的數(shù)列長度都會是之前數(shù)列的一半,直到找到相等元素的位置或者最終沒有找到要找的元素。

動圖演示:(于順序查找相比較)

?

??  1.3  查找條件

二分查找的前提條件是有序數(shù)列,普通查找則不需要。

查找到返回該元素的下標,否則返回-1。

普通查找的時間復(fù)雜度為O(N), 二分查找的時間復(fù)雜度為O(logN)。 N/2/2···/2=1,2^m=N(m為折半查找的次數(shù)),那么m=log(N),二分查找的時間復(fù)雜度就為O(logN)。

??  1.4  代碼實現(xiàn)

?? 1.4.1  初始化數(shù)據(jù)

?? 1.4.2  核心函數(shù)

(貳)猜數(shù)字游戲 

??  2.1  菜單初始化

??  2.2  核心函數(shù)

??  2.3  main函數(shù)

??  2.4  總代碼

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void menu()
{
	printf("**********************************\n");
	printf("*********** 1.play     ***********\n");
	printf("*********** 0.exit     ***********\n");
	printf("**********************************\n");
}
 
//RAND_MAX--rand函數(shù)能返回隨機數(shù)的最大值。
void game()
{
	int random_num = rand() % 100 + 1;
	int input = 0;
	while (1)
	{
		printf("請輸入猜的數(shù)字>:");
		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;
}

到此這篇關(guān)于C語言巧用二分查找實現(xiàn)猜數(shù)游戲 的文章就介紹到這了,更多相關(guān)C語言 二分查找內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vscode 配置 C/C++編譯環(huán)境(完整教程)

    vscode 配置 C/C++編譯環(huán)境(完整教程)

    這篇文章主要介紹了vscode 配置 C/C++編譯環(huán)境(完整教程),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • C語言中一些將字符串轉(zhuǎn)換為數(shù)字的函數(shù)小結(jié)

    C語言中一些將字符串轉(zhuǎn)換為數(shù)字的函數(shù)小結(jié)

    這篇文章主要介紹了C語言中一些將字符串轉(zhuǎn)換為數(shù)字的函數(shù)小結(jié),分別為atoi()函數(shù)和atol()函數(shù)以及atof()函數(shù),需要的朋友可以參考下
    2015-08-08
  • C++探索構(gòu)造函數(shù)私有化會產(chǎn)生什么結(jié)果

    C++探索構(gòu)造函數(shù)私有化會產(chǎn)生什么結(jié)果

    C++的構(gòu)造函數(shù)的作?:初始化類對象的數(shù)據(jù)成員。即類的對象被創(chuàng)建的時候,編譯系統(tǒng)對該對象分配內(nèi)存空間,并?動調(diào)?構(gòu)造函數(shù),完成類成員的初始化。構(gòu)造函數(shù)的特點:以類名作為函數(shù)名,?返回類型
    2022-05-05
  • 《C++ Primer》隱式類類型轉(zhuǎn)換學習整理

    《C++ Primer》隱式類類型轉(zhuǎn)換學習整理

    在本篇文章里小編給大家整理的是關(guān)于《C++ Primer》隱式類類型轉(zhuǎn)換學習筆記內(nèi)容,需要的朋友們參考下。
    2020-02-02
  • C語言實現(xiàn)控制臺掃雷小游戲

    C語言實現(xiàn)控制臺掃雷小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)控制臺掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++?構(gòu)造函數(shù)學習筆記

    C++?構(gòu)造函數(shù)學習筆記

    這篇文章主要為大家介紹了C++?構(gòu)造函數(shù)學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Qt將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為html

    Qt將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為html

    這篇文章主要為大家詳細介紹了Qt如何實現(xiàn)將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為html,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • C++基于reactor的服務(wù)器百萬并發(fā)實現(xiàn)與講解

    C++基于reactor的服務(wù)器百萬并發(fā)實現(xiàn)與講解

    這篇文章主要介紹了C++基于reactor的服務(wù)器百萬并發(fā)實現(xiàn)與講解,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 詳解C++ 創(chuàng)建文件夾的四種方式

    詳解C++ 創(chuàng)建文件夾的四種方式

    這篇文章主要介紹了C++ 創(chuàng)建文件夾的四種方式,本文示例都是在 E:\database 路徑下創(chuàng)建一個叫做 testFolder 的文件夾,文章通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-11-11
  • Qt實現(xiàn)棋盤游戲

    Qt實現(xiàn)棋盤游戲

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)棋盤游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

舒城县| 鸡泽县| 绥阳县| 同江市| 商丘市| 东至县| 长海县| 肇州县| 英超| 天峻县| 江安县| 中方县| 修武县| 怀化市| 依安县| 革吉县| 武陟县| 长顺县| 尚义县| 信阳市| 盘山县| 柘荣县| 叶城县| 绍兴县| 金塔县| 阿克陶县| 永善县| 吕梁市| 聊城市| 汉源县| 广河县| 山东| 镇宁| 南郑县| 加查县| 大荔县| 腾冲县| 武定县| 洛阳市| 如东县| 安义县|