纪念逝去的岁月——C/C++二分查找
代码
#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++二分查找的更多相关文章
- 纪念逝去的岁月——C++实现一个队列(使用类模板)
1.代码 2.运行结果 1.代码 #include <stdio.h> #include <string.h> template <typename T> clas ...
- 纪念逝去的岁月——C++实现一个栈(使用类模板)
这个版本是上个版本的加强版,上个版本的代码:http://www.cnblogs.com/fengbohello/p/4542912.html 目录 1.代码 2.运行结果 1.代码 1.1 调试信息 ...
- 纪念逝去的岁月——C++实现一个栈
1.代码 2.运行结果 1.代码 stack.cpp #include <stdio.h> #include <string.h> class ClsStack { priva ...
- 纪念逝去的岁月——C/C++排序二叉树
1.代码 2.运行结果 3.分析 1.代码 #include <stdio.h> #include <stdlib.h> typedef struct _Node { int ...
- 纪念逝去的岁月——C/C++快速排序
快速排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- 纪念逝去的岁月——C/C++交换排序
交换排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- 纪念逝去的岁月——C/C++选择排序
选择排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- 纪念逝去的岁月——C/C++冒泡排序
冒泡排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- 纪念逝去的岁月——C/C++字符串回文
判断字符串是否是回文: 1. 输入:hello world dlrow olleh 输出:1 2. 输入:nihao hello 输出:0 代码 #include <stdio.h> #i ...
随机推荐
- 使用git进行团队合作开发
1.git 和 svn 的差异 git和svn 最大的差异在于git是分布式的管理方式而svn是集中式的管理方式.如果不习惯用代码管理工具,可能比较难理解分布式管理和集中式管理的概念.下面介绍两种工具 ...
- “init terminating in do_boot” Windows10 Rabbit MQ fails to start
在Windows 10环境下安装rabbitmq-server-3.6.2后,CMD中运行命令:rabbitmq-plugins enable rabbitmq_management 报错: { , ...
- 攻城狮在路上(贰) Spring(一)--- 软件环境、参考书目等一览表
一.软件环境: 二.参考书目: <Spring 3.X 企业应用开发实战> 陈雄华.林开雄著 电子工业出版社出版 三.其他说明: spring 源码地址:https://github.co ...
- 通过Small Basic把儿子/女儿带入编程的世界
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:今天是儿子3岁的生日,就来介绍一下适合给儿童培养兴趣的编程语言--微软Small Ba ...
- 【spring】 <tx:annotation-driven /> 的理解 【转载的】
在使用SpringMvc的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx.mvc 等也能很直白的理解出来分别的作用.<tx: ...
- windows主机开启openssl的方法
转自:http://www.feichang56.com/openssl/
- 移动Web开发规范
1.字体设置 使用无衬线字体 body { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif; } 2.设 ...
- Android拓展系列(9)--Android视频录制screenrecord命令
在Android4.4 Kitkat上集成了一个比较好用的视频录制功能.参考:http://forums.androidcentral.com/android-4-4-kitkat/329674-ho ...
- express-17 持久化
简介 所有网站和Web应用程序(除了最简单的)都需要某种持久化方式,即某种比易失性内存更持久的数据存储方式,这样当遇到服务器宕机.断电.升级和迁移等情况时数据才能保存下来. 文件系统持久化 实现持久化 ...
- 【主席树】【bzoj2161】[hdu4348]
#include<cstdio> #include<algorithm> #include<cstring> #define N 400000 using name ...