算法很easy。直接附着到代码它

#include <iostream>

using namespace std;

template<typename T>
int binary_search(const T s[],const int size,const T &m)
{
if(size <= 0){
return -1;
}
int i = size/2;
int k = 1;
int step = 1; while(step > 0 && i >= 0 && i < size){
step = size/(2*++k);
if(m == s[i]){
return i;
}else if(m > s[i]){
i += step;
}else{
i -= step;
}
} return -1;
} int main()
{
long s[]={1,3,5,6,19,27,38,45,687,6789,10000}; int len = sizeof(s)/sizeof(long); cout<<"0:"<<binary_search<long>(s,len,1)<<endl;
cout<<"1:"<<binary_search<long>(s,len,3)<<endl;
cout<<"5:"<<binary_search<long>(s,len,27)<<endl;
cout<<"10:"<<binary_search<long>(s,len,10000)<<endl;
cout<<"-1:"<<binary_search<long>(s,len,10001)<<endl;
cout<<"-1:"<<binary_search<long>(s,len,44)<<endl;
cout<<"-1:"<<binary_search<long>(s,len,0)<<endl; return 0;
}

二进制搜索方法C++通用执行的更多相关文章

  1. CentOS7安装MySQL的方法之通用二进制格式

      CentOS7安装MySQL的方法之通用二进制格式          

  2. .NET基础架构方法—DataTableToExcel通用方法

    p { display: block; margin: 3px 0 0 0; } --> .NET架构基础方法—DataTableToExcel通用方法(NPOI) 今天封装DataTaleTo ...

  3. subprocess模块还提供了很多方便的方法来使得执行 shell 命令

    现在你可以看到它正常地处理了转义. 注意 实际上你也可以在shell=False那里直接使用一个单独的字符串作为参数, 但是它必须是命令程序本身,这种做法和在一个列表中定义一个args没什么区别.而如 ...

  4. lastcomm搜索并显示以前执行过的命令信息

    lastcomm搜索并显示以前执行过的命令信息

  5. AsyncTask onPreExecute方法用于在执行后台任务前做一些UI操作

    1.实例化 TableListsTask task = new TableListsTask(ServerIP,"ALL", MenuActivity.this);   //第三参 ...

  6. 关于让simulink中display组件显示二进制的方法

    关于让simulink中display组件显示二进制的方法 1.首先需要配置gateway out模块,勾选propagate data type to output 2.配置display模块 fo ...

  7. Node.js的那些坑——如何让异步并发方法同步顺序执行(for循环+异步操作)

    1 前言 nodejs的回调,有时候真的是让人又爱又恨的,当需要用for循环把数据依次存入数据库,但是如果使用正常的for循环,永远都是最后一次值的记录,根本不符合要求. 解决此方案有几种,例如闭包( ...

  8. 重读《深入理解Java虚拟机》五、虚拟机如何执行字节码?程序方法如何被执行?虚拟机执行引擎的工作机制

    Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能.虚拟机执行引擎执行的对象是方法(均特指非本地 ...

  9. 调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG(转永喃兄)

    调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG 1)查询会重复执行的情形:Result := DATASETPROVIDER.Data会触发它关联的DATASET ...

随机推荐

  1. Android 点亮屏幕

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. java 一个函数EnumMap返回多个值

    java 一个函数如何返回多个值   在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!! 网上这个问题的解决方法: 1.使用map返回值:这个方法问题是,你并不知道如何返回值 ...

  3. iOS开发 - 应用内打开第三方应用并传值

    首先说下这个功能, 应该都有接触过. 比方,你下载了一个电子书,然后选择打开方式的时候,可能会看到你手机中已经安装的阅读类App. 或者,你的QQ收到了某个文件,你也能够选择本地的应用来打开. 那这种 ...

  4. Winform - 全屏显示

    //全屏显示 this.WindowState = FormWindowState.Maximized;

  5. Expert for SQL Server 诊断系列

    Expert for SQL Server 诊断系列 Expert 诊断优化系列------------------锁是个大角色   前面几篇已经陆续从服务器的几个大块讲述了SQL SERVER数据库 ...

  6. G - Self Numbers(2.2.1)

    G - Self Numbers(2.2.1) Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & % ...

  7. Keepalived安装工具

    装keepalived前,要先检查主机上是否已经安装, ps -ef | grep keepalive 不检查的话.easy把前人装的东西覆盖掉,那么曾经弄的配置文件都没了比較麻烦. 下面都为root ...

  8. ajax获取的全部是object,我要获取的是json

     编程语言 ---------------------------------------------前台: $(document).ready(function() {  var data= []; ...

  9. 大数据实时处理-基于Spark的大数据实时处理及应用技术培训

    随着互联网.移动互联网和物联网的发展,我们已经切实地迎来了一个大数据 的时代.大数据是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合,对大数据的分析已经成为一个非常重要且紧迫的 ...

  10. IT行业,需要经常锻炼,开篇从本钱开始

    今天下完班,和部门兄弟一起去打了两小时乒乓球,大汗淋漓,很痛快. 败给了两个高手,感觉年龄大了些,灵活性没有以前那么好了. 想想以前读书时,在整个学校都叱诧风云,如今即败给了几个老手,唉. 看来以后要 ...