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

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

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

本文實例講述了C++二分法在數(shù)組中查找關(guān)鍵字的方法。分享給大家供大家參考。具體如下:

/*
  此程序演示了二分法查找算法(針對按從小到大排列的數(shù)組)的實現(xiàn)。
*/
#include <iostream>
using namespace std;
/*
  功能: 實現(xiàn)數(shù)組的二分法查找(只算法只適合按從小到大排列的數(shù)組)
  返回值:關(guān)鍵字在數(shù)組中的下標(biāo), 返回-1表示未找到
  a[]:  要搜索的數(shù)組
  len:  數(shù)組元素個數(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ù)組前半段的長度
    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;
}

希望本文所述對大家的C++程序設(shè)計有所幫助。

相關(guān)文章

  • C/C++實現(xiàn)日期計算器的示例代碼

    C/C++實現(xiàn)日期計算器的示例代碼

    本篇文章主要介紹了C/C++實現(xiàn)日期計算器的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • C++實踐IP地址類項目參考

    C++實踐IP地址類項目參考

    今天小編就為大家分享一篇關(guān)于C++實踐IP地址類項目參考,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • C語言實現(xiàn)手寫Map(全功能)的示例代碼

    C語言實現(xiàn)手寫Map(全功能)的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C語言實現(xiàn)手寫Map(全功能),文中的示例代碼講解詳細,對我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-08-08
  • 利用boost獲取時間并格式化的方法

    利用boost獲取時間并格式化的方法

    下面小編就為大家?guī)硪黄胋oost獲取時間并格式化的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • C語言實現(xiàn)簡單職工信息管理系統(tǒng)

    C語言實現(xiàn)簡單職工信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單職工信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C#和C++編程語言中的類淺析

    C#和C++編程語言中的類淺析

    在本篇文章里我們給大家分析了C#和C++編程語言中的類的相關(guān)知識點,正在學(xué)習(xí)的朋友們跟著操作下。
    2019-02-02
  • C++?pimpl機制詳細講解

    C++?pimpl機制詳細講解

    PIMPL?是?C++?中的一個編程技巧,意思為指向?qū)崿F(xiàn)的指針。具體操作是把類的實現(xiàn)細節(jié)放到一個單獨的類中,并用一個指針進行訪問
    2022-08-08
  • C++ boost::asio編程-域名解析詳細介紹

    C++ boost::asio編程-域名解析詳細介紹

    這篇文章主要介紹了C++ boost::asio編程-域名解析詳細介紹的相關(guān)資料,這里附有實例代碼,幫助大家學(xué)習(xí)理解這部分知識,需要的朋友可以參考下
    2016-11-11
  • windows下在vim中搭建c語言開發(fā)環(huán)境的詳細過程

    windows下在vim中搭建c語言開發(fā)環(huán)境的詳細過程

    這篇文章主要介紹了windows下在vim中搭建c語言開發(fā)環(huán)境,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • C++?string如何獲取文件路徑文件名、文件路徑、文件后綴(兩種方式)

    C++?string如何獲取文件路徑文件名、文件路徑、文件后綴(兩種方式)

    這篇文章主要介紹了C++?string如何獲取文件路徑文件名、文件路徑、文件后綴(兩種方式),具有很好的參考價值,希望對大家有所幫助。
    2023-06-06

最新評論

依兰县| 枞阳县| 正定县| 界首市| 扶绥县| 德令哈市| 怀远县| 南皮县| 民和| 江山市| 临沭县| 红安县| 商南县| 滨州市| 东安县| 泌阳县| 翁源县| 百色市| 青铜峡市| 博兴县| 宁德市| 新营市| 胶州市| 万盛区| 黄陵县| 清河县| 温宿县| 祁阳县| 吉林市| 霍城县| 达尔| 潜江市| 汝城县| 大庆市| 普定县| 天峨县| 临洮县| 彭山县| 商水县| 三门县| 桃江县|