C++二分法在數(shù)組中查找關(guān)鍵字的方法
本文實(shí)例講述了C++二分法在數(shù)組中查找關(guān)鍵字的方法。分享給大家供大家參考。具體如下:
/*
此程序演示了二分法查找算法(針對(duì)按從小到大排列的數(shù)組)的實(shí)現(xiàn)。
*/
#include <iostream>
using namespace std;
/*
功能: 實(shí)現(xiàn)數(shù)組的二分法查找(只算法只適合按從小到大排列的數(shù)組)
返回值:關(guān)鍵字在數(shù)組中的下標(biāo), 返回-1表示未找到
a[]: 要搜索的數(shù)組
len: 數(shù)組元素個(gè)數(shù)
key: 要查找的關(guān)鍵字
*/
int binSearch(int a[], int len, int key)
{
int i = len / 2;
int ii = 0;
if(len < 1)
return -1;
if((key > a[i]) && (len - i > 0))
{
ii = binSearch(a+i+1, len - i - 1, key); // 在后半段數(shù)組中查找
if(ii != -1)
return ii + i + 1; // 加上數(shù)組前半段的長(zhǎng)度
else
return -1;
}
else if(key < a[i] && i > 0) // 在前半段數(shù)組中查找
return binSearch(a, i, key);
else if(key == a[i])
return i; // 返回關(guān)鍵字在數(shù)組中的下標(biāo)
else
return -1; // 未在數(shù)組中找到關(guān)鍵字
}
int main()
{
int a[] = {2, 4, 5, 20, 24, 35, 66, 78, 98};
int len = sizeof(a) / sizeof(int);
int i, key = -1;
while(1)
{
cin>>key;
i = binSearch(a, len, key);
printf("%d\n", i);
if(key > 100)
break;
}
return 0;
}
希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。
相關(guān)文章
C++編寫(xiě)簡(jiǎn)易的飛機(jī)大戰(zhàn)
一款自己設(shè)計(jì)的飛機(jī)小游戲,本程序于運(yùn)行環(huán)境WINDOWS XP系統(tǒng),采用C++語(yǔ)言編寫(xiě)。游戲具有得分排名榜,而且在游戲完成后可以提交得分到網(wǎng)絡(luò)上的世界排名榜中。2015-08-08
C++實(shí)現(xiàn)LeetCode(91.解碼方法)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(91.解碼方法),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
淺談C++內(nèi)存分配及變長(zhǎng)數(shù)組的動(dòng)態(tài)分配
下面小編就為大家?guī)?lái)一篇淺談C++內(nèi)存分配及變長(zhǎng)數(shù)組的動(dòng)態(tài)分配。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
C++實(shí)現(xiàn)AVL樹(shù)的基本操作指南
AVL樹(shù)是高度平衡的而二叉樹(shù),它的特點(diǎn)是AVL樹(shù)中任何節(jié)點(diǎn)的兩個(gè)子樹(shù)的高度最大差別為1,下面這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)AVL樹(shù)的相關(guān)資料,需要的朋友可以參考下2022-01-01
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單推箱子小游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
C語(yǔ)言實(shí)現(xiàn)文件內(nèi)容的加密與解密
文件內(nèi)容需要加密與解密功能的原因主要有兩個(gè)方面:保護(hù)數(shù)據(jù)安全和確保數(shù)據(jù)完整性,所以接下來(lái)小編就給大家介紹一下如何通過(guò)C語(yǔ)言實(shí)現(xiàn)文件內(nèi)容加密與解密,需要的朋友可以參考下2023-08-08

