代码

#include <stdio.h>

int binarySearch(int iList[], int iNum, int iX, int * pPos)
{
if(NULL == pPos)
{
return -;
}
int i = , j = iNum;
while(i < j)
{
printf("from [%d] to [%d]\n", i, j);
int iPos = (i + j) / ;
int iMid = iList[iPos];
if(iX == iMid)
{
*pPos = iPos;
return ;
}
else if (iX > iMid)
{
i = iPos + ;
}
else
{
j = iPos - ;
}
}
if(iList[i] == iX)
{
*pPos = i;
return ;
}
*pPos = -;
return -;
} int main(int argc ,char * argv[])
{
int iList[] = {, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , };
int iPos = ;
int iNum = ; int iX = ;
binarySearch(iList, iNum, iX, &iPos);
printf("[%d] @ position [%d]\n\n", iX, iPos); iX = ;
binarySearch(iList, iNum, iX, &iPos);
printf("[%d] @ position [%d]\n\n", iX, iPos); iX = ;
binarySearch(iList, iNum, iX, &iPos);
printf("[%d] @ position [%d]\n\n", iX, iPos); iX = ;
binarySearch(iList, iNum, iX, &iPos);
printf("[%d] @ position [%d]\n\n", iX, iPos); iX = -;
binarySearch(iList, iNum, iX, &iPos);
printf("[%d] @ position [%d]\n\n", iX, iPos); iX = ;
binarySearch(iList, iNum, iX, &iPos);
printf("[%d] @ position [%d]\n\n", iX, iPos); return ;
}

编译

$ g++ -o binarySearch binarySearch.cpp

运行

$ ./binarySearch
from [] to []
from [] to []
from [] to []
from [] to []
[] @ position [] from [] to []
from [] to []
from [] to []
from [] to []
[] @ position [-] from [] to []
from [] to []
from [] to []
from [] to []
[] @ position [] from [] to []
from [] to []
from [] to []
from [] to []
from [] to []
[] @ position [] from [] to []
from [] to []
from [] to []
from [] to []
[-] @ position [-] from [] to []
from [] to []
from [] to []
from [] to []
from [] to []
[] @ position [-]

再见……

纪念逝去的岁月——C/C++二分查找的更多相关文章

  1. 纪念逝去的岁月——C++实现一个队列(使用类模板)

    1.代码 2.运行结果 1.代码 #include <stdio.h> #include <string.h> template <typename T> clas ...

  2. 纪念逝去的岁月——C++实现一个栈(使用类模板)

    这个版本是上个版本的加强版,上个版本的代码:http://www.cnblogs.com/fengbohello/p/4542912.html 目录 1.代码 2.运行结果 1.代码 1.1 调试信息 ...

  3. 纪念逝去的岁月——C++实现一个栈

    1.代码 2.运行结果 1.代码 stack.cpp #include <stdio.h> #include <string.h> class ClsStack { priva ...

  4. 纪念逝去的岁月——C/C++排序二叉树

    1.代码 2.运行结果 3.分析 1.代码 #include <stdio.h> #include <stdlib.h> typedef struct _Node { int ...

  5. 纪念逝去的岁月——C/C++快速排序

    快速排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...

  6. 纪念逝去的岁月——C/C++交换排序

    交换排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...

  7. 纪念逝去的岁月——C/C++选择排序

    选择排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...

  8. 纪念逝去的岁月——C/C++冒泡排序

    冒泡排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...

  9. 纪念逝去的岁月——C/C++字符串回文

    判断字符串是否是回文: 1. 输入:hello world dlrow olleh 输出:1 2. 输入:nihao hello 输出:0 代码 #include <stdio.h> #i ...

随机推荐

  1. mac os x10.10 安装thrift

    http://thrift.apache.org/docs/install/ 一:安装最新版(自动安装) 最简单的是用homebrew进行安装 安装homebrew 在终端输入ruby -e &quo ...

  2. hdu 4751 2013南京赛区网络赛 二分图判断 **

    和以前做过的一个二分图颇为相似,以前的是互相不认识的放在一组,这个是互相认识的,本质上是相同的 是 hdu 2444 #include<cstdio> #include<iostre ...

  3. 如何实现Outlook 2010 下载邮件后自动删除服务器上的邮件

    outlook2010---文件---信息---账户设置---选中要设置的帐号---双击点选要设置的邮箱---其他设置---高级---在服务器上保留邮件的副本---14天后删除服务器上的邮件副本,修改 ...

  4. fatal error C1083: 无法打开包括文件:“stddef.h”: No such file or directory

      在VS2012安装吗目录下的这个文件夹 D:\Program Files\Visual Studio 2012\VC\include 找到了stddef.h文件,将其加到项目的包含目录中,OK. ...

  5. h5嵌入视频遇到的bug及总结---转载

    最近做的一个h5活动因为嵌入视频而发现了好多以前从未发现的问题,在测试的时候不同系统不同版本不同环境等多多少少都出现了些问题,搞得我也是焦头烂额的,不过好在最终问题都解决了,自己也学到了好多东西,为了 ...

  6. 深入理解KMP算法

    前言:本人最近在看<大话数据结构>字符串模式匹配算法的内容,但是看得很迷糊,这本书中这块的内容感觉基本是严蔚敏<数据结构>的一个翻版,此书中给出的代码实现确实非常精炼,但是个人 ...

  7. css3 总结02

    盒子尺寸 .border-box{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; border-sizing: border ...

  8. 01 HTML基础

    HTML就是超文本标记语言的简写,是最基础的网页语言. 通过标签定义的语言,代码都是由标签所组成的.(最重要的标签是定义标题.段落和换行的标签) 不区分大小写 head部分是给html页面增加一些辅助 ...

  9. pycharm设置主题/默认格式/字体

    1.步骤为:File-->Settings-->Appearance & Behavior-->Appearance-->Theme中就可以选择喜欢的主题 2.一般将文 ...

  10. hadoop 分布式缓存

    Hadoop 分布式缓存实现目的是在所有的MapReduce调用一个统一的配置文件,首先将缓存文件放置在HDFS中,然后程序在执行的过程中会可以通过设定将文件下载到本地具体设定如下: public s ...