基于visual Studio2013解决面试题之1307二分查找

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               



题目



解决代码及点评

  1.   
  1.   
  1. <code class="language-cpp">/* 
  2.     二分查找实现 
  3. */  
  4.   
  5. #include <iostream>  
  6. using namespace std;  
  7.   
  8.   
  9. int BinarySearch(int *pnArr, int nLen, int nValue)  
  10. {  
  11.     if (pnArr == NULL || nLen < 1)  
  12.     {  
  13.         return -1;  
  14.     }  
  15.     int nLeft = 0;  
  16.     int nRight = nLen - 1;  
  17.     while (nLeft <= nRight)  
  18.     {  
  19.         int nMid = nLeft + (nRight - nLeft) / 2;  
  20.         if (pnArr[nMid] == nValue)  
  21.         {  
  22.             return nMid;  
  23.         }  
  24.         else if (pnArr[nMid] > nValue)  
  25.         {  
  26.             nRight = nMid - 1;  
  27.         }  
  28.         else  
  29.         {  
  30.             nLeft = nMid + 1;  
  31.         }  
  32.     }  
  33.     return -1;  
  34. }  
  35. int main()  
  36. {  
  37.     int nArr[] = {1,2,5,7,9,11,14,16,19};  
  38.     int nLen = sizeof(nArr) / sizeof(int);  
  39.     int Result = BinarySearch(nArr, nLen, 21);  
  40.     if (Result != -1)  
  41.     {  
  42.         cout<<"找到该数据在数组的下标为:"<<Result<<endl;  
  43.     }  
  44.     else  
  45.     {  
  46.         cout<<"没有该数据"<<endl;  
  47.     }  
  48.   
  49.     system("pause");  
  50.     return 0;  
  51. }</code>  
/*    二分查找实现*/#include <iostream>using namespace std;int BinarySearch(int *pnArr, int nLen, int nValue){    if (pnArr == NULL || nLen < 1)    {        return -1;    }    int nLeft = 0;    int nRight = nLen - 1;    while (nLeft <= nRight)    {        int nMid = nLeft + (nRight - nLeft) / 2;        if (pnArr[nMid] == nValue)        {            return nMid;        }        else if (pnArr[nMid] > nValue)        {            nRight = nMid - 1;        }        else        {            nLeft = nMid + 1;        }    }    return -1;}int main(){    int nArr[] = {1,2,5,7,9,11,14,16,19};    int nLen = sizeof(nArr) / sizeof(int);    int Result = BinarySearch(nArr, nLen, 21);    if (Result != -1)    {        cout<<"找到该数据在数组的下标为:"<<Result<<endl;    }    else    {        cout<<"没有该数据"<<endl;    }    system("pause");    return 0;}


代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6704519

解压密码:c.itcast.cn


下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”


2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行


程序运行结果








           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值