二分搜索技术

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

分治法的基本思想:将一个规模为n的问题,分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归的解这些子问题,然后将各个子问题的解合并得到原问题的解。

经典例子:二分搜索

算法基本思想:

1 将n个元素分成个数大致相同的两半,取n/2与x进行比较。

2 如果找到,则终止,返回。

3 如果小于n/2,则在小半部分继续查找。

4 如果大于n/2,则在大半部分继续查找。

算法描述代码:

#include <iostream>
using namespace std;template <class Type>
int BinarySearch(Type a[],const Type &x,int n){int left=0;int right = n-1;while(left<=right){int middle = (left+right)/2;if(x == middle)return middle;if(x > a[middle])left = middle+1;elseright = middle-1;}return -1;
}
int main()
{int num[10] = {0,9,8,7,6,5,4,3};int a;cout<<"输入想要查找的数字:"<<endl;cin>>a;int find = BinarySearch(num,a,9);if(find!=-1)cout<<find<<endl;elsecout<<"找不到想要的结果"<<endl;return 0;
}

运行结果如下:

转载于:https://my.oschina.net/u/204616/blog/545016

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库连接情况查询

--sp_who 可以指定数据库名&#xff0c;查询指定数据库的连接情况 sp_who go select DB_NAME(database_id) dbname, login_name, t1.session_id, t1.request_id, t2.status, t1.start_time, host_name from sys.dm_exec_requests t1inner join sys.dm_exec_sessions t2 on…

apachacxf项目使用@WebService报错

首先去除已经导入的包那是因为我们要导入javaee的api,首先点击最下面这个选择自己电脑上的路径然后就会自动导入上面的包,同时在jar库上也会出现转载于:https://www.cnblogs.com/fengnan/p/9311949.html

windows下redis 开机自启动

1&#xff0c;在redis的目录下执行&#xff08;执行后就作为windows服务了&#xff09;redis-server --service-install redis.windows.conf 2&#xff0c;安装好后需要手动启动redisredis-server --service-start 3&#xff0c;停止服务redis-server --service-stop 4&#xf…

Java中的属性和方法

题目 实体类 测试类 转载于:https://www.cnblogs.com/maoxiuying/p/9130361.html

《JavaScript》高级程序设计---第3章

3.基本概念 松散类型:所谓松散类型就是可以用来保存任何类型的数据。给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误。Object本质上由一组无序的名值对组成。未经初始化的默认值就会取得undefined值。True和False都不是Boolean值&#xff0c;只是标识符。如果…

2019-06-13 Java学习日记之MySql

数据库概述&#xff1a; 1、什么是数据库&#xff0c;数据库有什么作用&#xff1f; 数据库就是存储数据的仓库&#xff0c;气本质是一个文件系统&#xff0c;数据按照特定的格式将数据存储起来&#xff0c;用户可以对数据库中的数据进行增加&#xff0c;修改&#xff0c;删除及…

jquery 文件预览功能

$(function() {$("#pic").click(function () {$("#upload").click(); //隐藏了input:file样式后&#xff0c;点击头像就可以本地上传$("#upload").on("change",function(){var objUrl getObjectURL(this.files[0]) ; //获取图片的路径…

笔试小结---线程、进程

多进程:进程是资源分配的基本单位&#xff0c;它是程序执行时的一个实例。程序运行时&#xff0c;系统就会创建一个进程&#xff0c;并为它分配资源&#xff0c;然后把该进程放入进程就绪队列&#xff0c;进程调度器选中它的时候就会为它分配CPU时间&#xff0c;程序开始真正运…

Spring security (一)架构框架-Component、Service、Filter分析

想要深入spring security的authentication &#xff08;身份验证&#xff09;和access-control&#xff08;访问权限控制&#xff09;工作流程&#xff0c;必须清楚spring security的主要技术点包括关键接口、类以及抽象类如何协同工作进行authentication 和access-control的实…

windows下手动安装composer

1.下载compser.phar 地址 https://getcomposer.org/download/ 2.新建composer.bat 文件&#xff0c;写入“php "%~dp0composer.phar" %*” 3.把composer.bat composer.phar 两个文件放入 4.向环境变量里面写人“;D:\phpStudy\php\php-5.4.45;D:\phpStudy\php\php-5…

写更漂亮的javascript

用更合理的方式写 JavaScript 目录 声明变量对象数组字符串函数箭头函数模块迭代器和生成器属性变量提升比较运算符和等号代码块注释空白逗号分号类型转换命名规则声明变量 1.1 使用let和const代替var 不会变的声明用const//bad var $cat $(.cat)//good const $cat $(.cat)…

笔试小结---树

平衡二叉树(Balanced Binary Tree):又被称为AVL树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1&#xff0c;并且左右两个子树都是一棵平衡二叉树。 二叉搜索树&#xff1a;是一颗二叉树&#xff0c;可能为空;若非空,则满足以下特征: 1.每个元素有一…

iOS 快速实现分页界面的搭建

级别&#xff1a; ★★☆☆☆ 标签&#xff1a;「iOS」「分页」「QiPageMenuView」 作者&#xff1a; 沐灵洛 审校&#xff1a; QiShare团队 iOS 快速实现分页界面的搭建 项目中我们经常会遇到滚动分页的设计效果&#xff0c;被用来对不同数据界面的展示进行分类。我们先可以来…

java中String的常用方法

java中String的常用方法 转自&#xff1a;http://archer-zhou.iteye.com/blog/443864 java中String的常用方法1、length() 字符串的长度例&#xff1a;char chars[]{a,b.c};String snew String(chars);int lens.length();2、charAt() 截取一个字符例&#xff1a;char ch;ch&quo…

笔试小结---非对称加密算法

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey).公开密钥和私有密钥是一对,如果公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥进行加密,那么只有用对应的公开密钥才能解密. 非对称加密算法的保密性比较好,它消除了最终用户交换…

登录令牌 Token 介绍

Token值介绍 token 值: 登录令牌.利用 token 值来判断用户的登录状态.类似于 MD5 加密之后的长字符串. 用户登录成功之后,在后端(服务器端)会根据用户信息生成一个唯一的值.这个值就是 token 值. 基本使用: 在服务器端(数据库)会保存这个 token 值,以后利用这个 token 值来检索…

java-number

通常&#xff0c;当我使用number类型的时候&#xff0c;我们可以使用原始数据类型例如byte&#xff0c;int,long,double等 int i 5000; float b 13.65; double m 0xaf; 所有包装类&#xff08;整型&#xff0c;长型&#xff0c;字节型&#xff0c;双精度型&#xff0c;浮点型&a…

您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它。...

您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本&#xff0c;如果已安装则启用它。 https://www.java.com/zh_CN/download/faq/remove_olderversions.xml https://jingyan.baidu.com/article/6d704a13…

指令定义

restict&#xff1a;它告诉AngularJS这个指令在DOM中可以以何种形式被声明。 E(元素&#xff09; <my-directive> </mydirective>A(属性) <div my-directive“expression”> </div>C(类名) <div class“my-directive:expression;”> </div>…

MyBatis学习总结(9)——使用MyBatis Generator自动创建代码

2019独角兽企业重金招聘Python工程师标准>>> 由于MyBatis属于一种半自动的ORM框架&#xff0c;所以主要的工作就是配置Mapping映射文件&#xff0c;但是由于手写映射文件很容易出错&#xff0c;所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这…