欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++二分法在數(shù)組中查找關(guān)鍵字的方法

 更新時(shí)間:2015年09月24日 16:45:30   作者:清清飛揚(yáng)  
這篇文章主要介紹了C++二分法在數(shù)組中查找關(guān)鍵字的方法,涉及C++數(shù)組查找算法的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(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++編寫簡(jiǎn)易的飛機(jī)大戰(zhàn)

    C++編寫簡(jiǎn)易的飛機(jī)大戰(zhàn)

    一款自己設(shè)計(jì)的飛機(jī)小游戲,本程序于運(yùn)行環(huán)境WINDOWS XP系統(tǒng),采用C++語(yǔ)言編寫。游戲具有得分排名榜,而且在游戲完成后可以提交得分到網(wǎng)絡(luò)上的世界排名榜中。
    2015-08-08
  • C++實(shí)現(xiàn)LeetCode(91.解碼方法)

    C++實(shí)現(xiàn)LeetCode(91.解碼方法)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(91.解碼方法),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 淺談C++內(nèi)存分配及變長(zhǎng)數(shù)組的動(dòng)態(tài)分配

    淺談C++內(nèi)存分配及變長(zhǎng)數(shù)組的動(dòng)態(tài)分配

    下面小編就為大家?guī)硪黄獪\談C++內(nèi)存分配及變長(zhǎng)數(shù)組的動(dòng)態(tài)分配。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • C++實(shí)現(xiàn)AVL樹的基本操作指南

    C++實(shí)現(xiàn)AVL樹的基本操作指南

    AVL樹是高度平衡的而二叉樹,它的特點(diǎn)是AVL樹中任何節(jié)點(diǎn)的兩個(gè)子樹的高度最大差別為1,下面這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)AVL樹的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 減小VC6編譯生成的exe文件的大小的方法

    減小VC6編譯生成的exe文件的大小的方法

    這篇文章主要介紹了減小VC6編譯生成的exe文件的大小的方法,需要的朋友可以參考下
    2015-01-01
  • C語(yǔ)言結(jié)構(gòu)體定義的方法匯總

    C語(yǔ)言結(jié)構(gòu)體定義的方法匯總

    結(jié)構(gòu)體是一種工具,用這個(gè)工具可以定義自己的數(shù)據(jù)類型。下面通過本文給大家分享了C語(yǔ)言結(jié)構(gòu)體定義的方法匯總,需要的朋友參考下吧
    2017-12-12
  • C++面試八股文之位運(yùn)算問題詳解

    C++面試八股文之位運(yùn)算問題詳解

    這篇文章主要為大家介紹了C++面試八股文之位運(yùn)算的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單推箱子小游戲

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單推箱子小游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • c++分離講解模板的概念與使用

    c++分離講解模板的概念與使用

    人們需要編寫多個(gè)形式和功能都相似的函數(shù),因此有了函數(shù)模板來減少重復(fù)勞動(dòng);人們也需要編寫多個(gè)形式和功能都相似的類,于是 C++ 引人了類模板的概念,編譯器從類模板可以自動(dòng)生成多個(gè)類,避免了程序員的重復(fù)勞動(dòng)
    2022-04-04
  • C語(yǔ)言實(shí)現(xiàn)文件內(nèi)容的加密與解密

    C語(yǔ)言實(shí)現(xiàn)文件內(nèi)容的加密與解密

    文件內(nèi)容需要加密與解密功能的原因主要有兩個(gè)方面:保護(hù)數(shù)據(jù)安全和確保數(shù)據(jù)完整性,所以接下來小編就給大家介紹一下如何通過C語(yǔ)言實(shí)現(xiàn)文件內(nèi)容加密與解密,需要的朋友可以參考下
    2023-08-08

最新評(píng)論