纪念逝去的岁月——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 ...
随机推荐
- 攻城狮在路上(壹) Hibernate(四)--- 对象标识符(OID)生成机制
Hibernate使用对象标识符(OID)来建立内存中对象和数据库表中记录的对应关系,对象的OID和数据库的主键对应.为了保证OID的唯一性和不可变性,应该让Hibernate来为OID赋值.Hibe ...
- android 入门-Service实时向Activity通过BroadcastReceiver传递数据
引文: http://www.cnblogs.com/linjiqin/p/3147764.html <RelativeLayout xmlns:android="http://sch ...
- phpMailer邮件发送
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 利用Roslyn构建一个简单的C#交互脚本引擎
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 微软的下一代编译器技术Roslyn是一个里程碑的技术,可以给.NET平台带来无限想象空间.比 ...
- Android开发工具之Dash
作为一名死coder,每天最常见的动作就是查看各种API文档,你一定也有过同时打开N个窗口(HTML.PDF.CHM),不停的在编辑器与文档之间切换的感受吧?怎么说呢,其实我很讨厌这种枯燥无味的动作, ...
- html css js 一些记录.
webstorm 的基本使用 webstorm 格式化 html 代码: Ctrl+Alt+L js html css 基本使用 注意 dom 的 innerHTML会刷新dom,所以里面包含的事件绑 ...
- zookeeper源码分析三LEADER与FOLLOWER同步数据流程
根据二)中的分析,如果一台zookeeper服务器成为集群中的leader,那么一定是当前所有服务器中保存数据最多的服务器,所以在这台服务器成为leader之后,首先要做的事情就是与集群中的其它服务器 ...
- MySQL主主复制3
一.创建并授权用户 在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库 在Server-1上: 创建一个充许Server-2来访问的用户server2,密码为:server ...
- cf 710E dp
题目链接: http://codeforces.com/problemset/problem/710/E 题意:要输入n个字符'a',有两种操作,一种是输入或删除一个'a',耗时x:另一种是把当前的整 ...
- hdu2546 01背包
http://acm.split.hdu.edu.cn/showproblem.php?pid=2546 01背包问题,首先拿出5元买最贵的东西,那接下来就是背包容量m-5,物品数量n-1 的01背包 ...