当前位置: 首页 > 编程日记 > 正文

C++查找算法(更新中)

C++的查找分为静态查找与动态查找。
静态查找:只是在查找表中判断是否有这一个元素,取出这个元素的属性。
动态查找:在查找过程中,会对查找表做出修改。 比如插入、删除。

静态查找

静态查找包括:顺序查找、二分查找、分块查找等。

顺序查找O(n)

查找表可以是有序或无序。顺序查找就是逐个比较。

#include <iostream>
#include <vector>
using namespace std;
int main()
{vector<int> vn_container;for(int i = 1;i<=10;i++)vn_container.push_back(i);int target = 6;for(int i = 0;i<vn_container.size();i++)if(vn_container[i] == target){cout<<"Exist"<<endl;return 0;}cout<<"Don't exist"<<endl;
}

二分查找O(logn)

要求查找表为有序,然后将target和查找表的中间值比较。小于中间值的话,去左边查找,大于中间值的话,去右边查找(如果是升序的话)。

#include <iostream>
#include <vector>
using namespace std;
int main()
{vector<int> vn_container;for(int i = 1;i<=10;i++)vn_container.push_back(i);int target = 6;int left = 0,right = 9;while(left < right){int mid = (left + right) >> 1;if(vn_container[mid] >= target) right = mid;else  left = mid + 1;}if(vn_container[left] != target)cout<<"Don't exist"<<endl;elsecout<<"exist"<<endl;
}

相关文章:

编译Linux Kernel(linux-4.19.178)并制作成rpm文件

目录 一、安装依赖项 二、下载、解压缩、制作.config文件 三、编译内核及打包 四、升级内核 首次尝试编译Linux内核&#xff0c;记录过程&#xff0c;提供Linux Kernel(linux-4.19.178)下载https://download.csdn.net/download/qpeity/15637656。 一、安装依赖项 安装依赖…

2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水

2016 Multi-University Training Contest 3 A - Sqrt Bo 题意&#xff1a;给一个数 n&#xff0c;问n要多少次平方后化为1&#xff0c;如果超过5次输出"TAT"。 tags&#xff1a;SB题&#xff0c;5次内平方的&#xff0c;即小于2*2*4*16*256*65536 。然后0、1特判。 #…

BZOJ 1801 [Ahoi2009]中国象棋(线性动规)(洛谷P2051)

题意&#xff1a;就是在n*m的格子中放“炮”&#xff08;中国象棋中的棋子&#xff09;问有多少种放法&#xff0c;使得没有任意的两个炮相互攻击 思路&#xff1a;我们很容易的得到一列或者一行中最多放下两个炮&#xff08;我也只能得到这些了&#xff0c;满脑子状压&#xf…

Java中父类构造方法对子类构造方法的影响(不是一句话可以说清的)

推荐的阅读顺序是&#xff1a;先看Test类&#xff0c;再根据提示看父类和子类 让我们通过代码来了解一下&#xff1a;创建一个父类&#xff1a; public class Father{public Father(){super();//默认调用Object构造方法(Object是所有类的父类)System.out.println("父类构…

ORB_SLAM2概述

追踪线程 灰度化处理。构建当前帧&#xff08;提取每幅图像的特征点&#xff0c;并分配到网格中&#xff0c;这会极大的方便某一领域内的特征点的查找与匹配&#xff09;。单目相机初始化操作&#xff1a;通过特征点匹配&#xff0c;使用RANSACDLC计算H矩阵&#xff0c;并根据…

源同步方法与注意事项

2021年的信息安全攻防演练比2020年来的稍早了一些&#xff0c;还是一样的配方&#xff0c;还是一样的味道。检查单位的YUM源&#xff0c;发现没有CentOS 7.9的&#xff0c;排查后发现原来是中科大的rsync同步地址放生了变化&#xff0c;导致源同步失败。改一下地址就好&#xf…

Android开发教程 - 使用Data Binding(二)集成与配置

本系列目录 使用Data Binding&#xff08;一&#xff09;介绍使用Data Binding&#xff08;二&#xff09;集成与配置使用Data Binding&#xff08;三&#xff09;在Activity中的使用使用Data Binding&#xff08;四&#xff09;在Fragment中的使用使用Data Binding&#xff08…

Java封装(速读版)

封装就是使用公共方法对私有成员变量进行操作&#xff08;赋值或获取&#xff09;&#xff0c;这样做可以防止该类的代码和数据被其他类 定义的代码随意访问&#xff0c;有助于数据的安全。–我们可以通过修改成员变量的属性&#xff08;一般为private&#xff09;&#xff0c;…

C# 创建压缩文件

出处&#xff1a;http://www.cnblogs.com/sparkdev/ 在程序中对文件进行压缩解压缩是很重要的功能&#xff0c;不仅能减小文件的体积&#xff0c;还能对文件起到保护作用。如果是生成用户可以下载的文件&#xff0c;还可以极大的减少网络流量并提升下载速度。最近在一个 C# 项目…

Windows自带certutil工具校验用法

windows自带校验工具certutil&#xff0c;记录用法如下。 certutil -hashfile <file> MD5 certutil -hashfile <file> SHA1 certutil -hashfile <file> SHA256 注意MD5、SHA1、SHA256必须是大写的&#xff01;否则报错&#xff01; C:\Users\Lenovo\Downl…

C++数组名做函数形参/指针

数组名做函数形参 数组未开辟空间时 #include <iostream> using namespace std; void test(int* a) {*a 0;*(a1) 1;*(a2) 2;cout<<a[0]<<a[1]<<a[2]<<endl;return; } int main(int argc,char* argv[]) {int* a;test(a);cout<<a[0]<…

String创建方式及其区别(快速了解)

让我们来看两种赋值方式&#xff1a; 第一种&#xff1a;直接赋值 String name1 "Tom"; String name2 "Tom"; System.out.println(name1 name2);//用来判断name1和name2的地址是否相同&#xff0c;相同为true&#xff0c;不同为false //此时打印的结果…

npm 常用命令详解

本文以Windows平台上做测试&#xff0c;以gulp为示例做教程&#xff0c;出自作者白树&#xff0c;转载请声明&#xff01; 目录 npm是什么npm install 安装模块npm uninstall 卸载模块npm update 更新模块npm outdated 检查模块是否已经过时npm ls 查看安装的模块npm init 在项…

linux Mysql 安装

一、wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm二、sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm三、yum install -y mysql-server mysql mysql-devel四、systemctl start mysqld.service 五、systemctl status mysqld.service六、mysq…

==和equals()的作用及区别

""的作用是比较两个变量是否相等。 当变量是基本数据类型时&#xff0c;比较的是值是否相等的&#xff1a;相等返回true&#xff0c;不等返回false&#xff1a; double a 100.0;int b 100;System.out.println(ab);//输出结果为&#xff1a;true当变量是引用类型时…

np.dot()运算准则

数组*数组 直接点乘。 数组*多维 数组有3个元素的话&#xff0c;用(3,)表示 二维矩阵3*3用&#xff08;3,3&#xff09;表示 &#xff08;3,3&#xff09; * &#xff08;3,&#xff09;结果为&#xff08;3,&#xff09;&#xff0c;即包含3个元素的一维向量 https://blog.…

用createrepo命令创建自己的yum源

观察一下使用的各大开源软件镜像站的yum源&#xff0c;思考他们是怎么创建的呢&#xff1f;我们自己能否创建呢&#xff1f;当然能。 1、安装web服务&#xff0c;本例选择nginx。配置过程不多说&#xff0c;本例选择的根目录是/var/repos&#xff0c;添加三个选项可以看到包的…

String创建对象的个数 StringBuffer

String name1 "Tom"; //创建了一个String类型的对象 String name2 "Lu""cy"; //创建了一个String类型的对象&#xff08;先拼接后创建对象&#xff0c;所以是一个&#xff09;String str "Ja"; String name3 str "m…

第5次作业+105032014166+张珍珍

测试链接&#xff1a;http://www.cnblogs.com/wxcclub/p/6792634.html 一、被测项目界面。 二、测试用例设计表 1.等价类 等价类划分法 输入及外部条件 有效等价类 等价类编号 无效等价类 等价类编号 日期类型 数字 1 非数字 8 年 1912≤year≤2050 2 year<19…

C++ new

C中利用new操作符在堆区开辟数据 堆区开辟的数据&#xff0c;由程序员手动开辟&#xff0c;手动释放&#xff0c;释放利用操作符 delete 语法&#xff1a;new 数据类型 利用new创建的数据&#xff0c;会返回该数据对应的类型的指针 开辟单个内存 语法&#xff1a;new 数据类型…

漫画:禅道程序员的一天

更多精彩欢迎关注《海边的程序员》 转载于:https://www.cnblogs.com/xiaobai007/p/9797462.html

HA01-集群介绍

目录 一、宏观理解集群 二、微观理解集群 三、安装高可用集群环境 3.1、实验环境简介 3.2、安装集群软件并配置集群 3.3、用命令行创建集群 一、宏观理解集群 集群中的一个服务器称为一个节点node。 集群资源以mysql为例一般有&#xff1a;vip&#xff08;浮动IP&#…

Python并行编程(八):with语法

1、基本概念 当有两个相关的操作需要在一部分代码块前后分别执行的时候&#xff0c;可以使用with语法自动完成。同时&#xff0c;使用with语法可以在特定的地方分配和释放资源&#xff0c;因此&#xff0c;with语法也叫作"上下文管理器"。在threading模快中&#xff…

“抽象类”的定义及其与“普通类”的区别

我们都知道在多态中子类要重写父类的方法&#xff0c;执行时也执行子类中的方法&#xff0c;这就显得父类中的方法体有点子虚乌有了&#xff0c; 也就是说可以直接省略方法体&#xff0c;而只定义一个方法就可以了。因此&#xff0c;我们称一个没有方法体的方法为抽象方法&…

refreshcontrol 实现下拉刷新的功能

该组件实现下拉刷新的功能。不过该组件是用在ScrollView的内部的&#xff0c;为ScrollView添加一个下拉刷新的功能。当ScrollView的垂直方向的偏移量scrollY:0的时候&#xff0c;手指往下拖拽ScrollView就会触发onRefresh事件方法。 相关的属性&#xff1a; onRefresh functio…

C++二维数组名与数组指针的思考

二维数组名和数组指针可以当做一个东西用&#xff0c;但两者之间的含义是不同的。 二维数组名是一个指向数组中所有元素的指针&#xff0c;而数组指针是一个行指针。体现在sizeof()上的不同。 #include <iostream> using namespace std; int main() {// a是一个二维数组…

HA03-fence设置

目录 一、fence作用 二、在集群里添加fence 2.1、fence和node之间的通信 2.2、配置fence 2.3、node上安装fence代理 2.4、在集群中添加fence 2.5、fence动作 一、fence作用 HA01理解集群那篇文章中讲过&#xff0c;当集群中某个node出现故障&#xff0c;各个node争抢集…

springboot整合Quartz实现动态配置定时任务

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请注明出处。 https://blog.csdn.net/liuchuanhong1/article/details/60873295前言 在我们日常的开发中&#xff0c;很多时候&#xff0c;定时任务都不是写死的&#xff0c;而是写到数据库中&#xff0c;从而实现定时任…

SQLserver 常用函数适用方法(转载)

SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来&#xff0c;不过一直没有实行。。。嘿嘿。。。 直到今天用到substring()这个函数&#xff0c;C# 里面这个方法起始值是 0&#xff0c;而 SQL 里面起始值是 1。傻傻分不清楚。。。 这篇博客作为…

“接口”的定义及其与“抽象类”的区别

我们知道一个有抽象方法的类是抽象类&#xff0c;而当一个类中全是抽象方法时&#xff0c;就可以定义为接口&#xff08;interface&#xff09; 接口命名通常以“I”开头&#xff1b;接口中的方法默认有public abstract&#xff08;所以可以省略&#xff09;&#xff1b;接口中…