代码

#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. windows下Tomcat配置多实例

    详情参见tomcat安装目录下RUNNING.txt中Advanced Configuration - Multiple Tomcat Instances部分. 问题源于下面这段tomcat官方文档的 ...

  2. JqueryEasyUI 解决IE下加载时页面错乱的问题 分类: JavaScript JqueryEasyUI 2014-09-20 09:50 545人阅读 评论(1) 收藏

    问题描述: 一直觉得jqueryeasyui在IE下的渲染效果不大好,尤其刚进入页面时的加载,页面会出现布局错乱,虽然是一闪而过,但是给用户的体验不好: 可以通过在页面onload时,增加一个遮罩层, ...

  3. Session 类

     Session 类 Session 类可以使用户在浏览您的网站时,维持他们的状态并跟踪他们的行为. Session 类将每个用户的 session 信息序列化(serialize)后存储到到 coo ...

  4. php调用phpqrcode.php生成二维码

    下载phpqrcode.php 下载地址: http://files.cnblogs.com/files/qhorse/phpqrcode.rar qrcode.php文件: <?php inc ...

  5. 您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展”处理方法

    转自:http://www.xuebuyuan.com/1549022.html 这已经是一个老掉牙的问题了,部分人使用自己的服务器安装WordPress程序之后,会出现“您的 PHP 似乎没有安装运 ...

  6. ApexSQL Log-SQL误操作恢复工具

    今天不小心对数据库执行了一次误操作,心想有没有什么工具能恢复这次误操作呢?于是找到了Log Explorer 4.2,可惜它最多只支持SQL 2005,在SQL 2008上无法使用,然后又找到了Ape ...

  7. codeforces733-C. Epidemic in Monstropolis 贪心加链表

    题意 现在有一个怪兽序列a[i],权值大的怪兽可以吃权值小的怪兽,吃完之后权值大的怪兽的权值会变成两者权值的和,相邻的怪兽才能吃 吃完之后,位置合并,队列前移,从左到右重新编号,重复这一过程, 然后给 ...

  8. 关于转换大写中文金额-新学的java函数整理

    toCharArray public char[] toCharArray() 将此字符串转换为一个新的字符数组. 返回: 一个新分配的字符数组,它的长度是此字符串的长度,而且内容被初始化为包含此字符 ...

  9. CentOS配置本地yum源(使用镜像iso文件)

    本人在使用yum安装软件的时候,感觉最不爽的是网络不佳时,安装的速度特别慢.所以,个人就上网search了一下如何使用Linux的安装文件作为其yum源.经过几次尝试,已经可以成功的配置了.下面是详细 ...

  10. Laravel之Service Container服务容器

    managing class dependencies and performing dependency injection. Dependency injection is a fancy phr ...