自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 并发服务器端的实现

1. 并发服务器服务器同时向多个发起请求的客户端提供服务,以提高平均满意度。而不是一个一个处理客户端的请求。实现方式:(1)多进程服务器(适用Linux)(2)多路复用服务器(3)多线程服务器2. 多进程服务器(1)进程查看命令$ ps au //命令可以查看当前运行的所有进程(2)子进程的创建pid_t pid = fork();//子进程会复制一份正在运行的父进程。//然后父进程和子进程会分别运行fork()之后的代码。//父进程返回子进程的PID,子进程返回0。(3)僵

2020-05-29 21:19:55 451

原创 计算机网络(六)应用层

1. 概述:对应用程序的通信提供服务。(1)功能和协议文件传输、访问和管理(FTP)电子邮件(SMTP,POP3)虚拟终端(HTTP)查询服务(浏览器)和远程作业登录(DNS)(2)网络应用模型C/S模型服务器:永久提供服务,永久性的访问地址/域名客户机:与服务器通信,间歇性的接入网络,动态IP地址,不与其他客户机直接通信应用:Web,FTP,远程登录,电子邮件P2P模型每个主机可以使服务机也可以是客户端,可以直接通信,间歇性接入网络,IP改变,可扩展性好(可以应对大

2020-05-25 21:38:16 453

原创 计算机网络(五)传输层

只有主机才有的层次。1. 功能:提供进程与进程之间的逻辑通信(端到端,不是点到点(网络层提供主机和主机之间的逻辑通信))复用和分用:对收到的报文进行差错检测两种协议 TCP UCP传输层的端口:软件端口,标识某个主机中的应用进程。套接字:2. UDP协议(1)特点:无连接,不可靠(需要应用层来实现可靠传输),小文件,时延小。在IP数据报的基础上增加复用分用和差错检测(首部检验和)。面向报文的,适合一次性传输量少的网络应用,对应用层的报文不会合并和拆分。无拥塞控制,适合很多实时

2020-05-25 19:18:55 249 1

原创 计算机网络(四)网络层

1. 网络层的功能2. 数据交换方式:电路交换、报文交换、分组交换(1)电路交换:先建立连接,独占资源通信时延小有序传输没有冲突实时性强(2)报文交换:无需建立连接,存储转发,报文大小不固定(3)分组交换:无需建立连接,存储转发,分组大小固定,分组过程有额外信息,排序重组。因特网采用分组交换。(3.1)数据报方式:为网络层提供无连接服务(3.2)虚电路方式:为网络层提供连接服务...

2020-05-24 12:16:03 372

原创 计算机网络(三)数据链路层

1. 功能基本概念:结点:主机、路由器链路:两个结点之间的物理通道数据链路:两个结点之间的逻辑通道,在物理链路的基础上加上了实现协议的硬件和软件。帧:链路层的协议数据单元,封装网络层的数据报。功能:向网络层提供服务,将源自网络层的数据可靠的传输到相邻节点的目标机的网络层。对网络层表现为无差错的链路。2. 封装成帧网络层的IP数据报的两端添加首部和尾部构成帧,然后交给物理层,形成比特流进行传输。3. 组帧(功能一)(1)字符计数法 :帧首部用计数字段来标明帧内数据个数。一步错,步步错。

2020-05-21 22:24:29 346

原创 计算机网络(二)物理层

1. 编码与调制编码:数据–》数字信号–》基带调制:数据–》模拟信号–》宽带2. 物理层设备(1)中继器:再生数字信号,对信号进行再生和还原,以增加信号传输的距离。中继器两端的网段、协议和速率必须相同,不会进行差错检测。(2)集线器:多口中继器。对信号再生放大转发,然后转发到其他所有的端口。只能实现一组数据通信,不能分割冲突域。两者的区别主要是多口。...

2020-05-21 10:38:51 115

原创 计算机网络(一)概述

1. 基本概念(1)定义:是将一个分散的、具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。(2)功能:数据通信(连通性)资源共享:硬件,软件,数据分布式处理:多台计算机各自承担任务的一部分提高可靠性负载均衡(3)组成硬件:路由器、交换机、光纤软件:qq、微信。。协议:规则和约定的集合(4)工作方式:边缘部分:用户直接使用 C/S,P2P核心部分:网络、路由器(5)功能和OSI模型的关系资源子网:实现资源共享/数据处理

2020-05-21 09:41:40 431

原创 排序

排序1. 衡量标准(1) 排序的稳定性两个相等的元素,排序前和排序后的先后位置不发生改变,则为稳定排序;否则为不稳定排序。(2) 内排序 外排序内排序:排序期间,数据元素都在内存中完成排序。外排序:排序期间,数据元素过多,不能同时放在内存,必须根据排序过程,不断在内存、外存之间移动。(3) 时间复杂度包括数据比较次数和数据移动次数,一般按平均情况进行估算。对于受初始排列影响较大的排序算法,按照最好、最坏估算。(4) 空间复杂度需要的额外空间。2. 插入排序将待排序的元素插入到已经排好

2020-05-16 22:21:20 106

原创

图1. 定义(1)完全有向图:n个定点的有向图有 n(n-1)条边。(2)完全无向图:n个定点的无向图有 n(n-1)/2条边。(3)简单路径:路径上各顶点互相不重复。(4)连通图和连通分量:无向图中,任意一对定点都是连通的,则该图为连通图。非连通图中的极大连通子图为连通分量。(5)强连通图和强连通分量:有向图中,任意一对定点都是双向连通的,则该图为强连通分量。非强连通图的极大强连通子图为强连通分量。(6)生成树:连通图的极小连通子图,n个顶点,有n-1条边。2. 图的表示(1)邻接矩阵

2020-05-15 15:34:07 279

原创 散列

散列1. 定义建立元素存储位置Address和关键码key之间的对应函数Hash(), Address = Hash(key)。散列方法应满足的条件:(1)计算简单,地址分布比较均匀,避免或尽量减少冲突。(2)拟定解决冲突的方案。2. 散列方法(1)直接定址法:取关键码的线性函数值作为散列地址。一一映射,不会冲突。(2)数字分析法:选取各种符号分布均匀的若干位作为散列地址。仅适用于提前知道每一位上数值分布情况。(3)除留余数法:已知允许的地址个数为m,取最接近于m的质数p作为除数。(4)

2020-05-14 20:15:34 171

原创 并查集

1. 并查集(1)最基础的实现方法//初始化parent[i]=i;//递归查找int Find(int i) //查找该结点的根结点{ if(parent[i]==i) return i; return Find(parent[i]);}//非递归查找int Find(int i){ int temp = parent[i]; while(temp!=i) { i = temp; temp = parent[i]; } return temp;}void Un

2020-05-14 19:23:10 75

原创 数据库常见面试题

1. 事务的四大特性 ACID(1)原子性:事务包含的操作要么全部成功,要么全部回退。(2)一致性:事务开始前和开始后,数据库的完整性没有被破坏。举例:转账(3)隔离性:对数据库进行并发操作时,事务不能被其他事务干扰。(4)持久性:事务一旦提交,对数据库的影响是永久的。2. 事务的并发:包含3类数据读和2类数据更新问题。(1)脏读:事务A读取事务B更新的数据,但是事务B回滚,事务A读取到的数据为脏数据。事务A读取了事务B提交前的数据(2)不可重复读:事务A读取了事务B提交后的数据(行级锁),导

2020-05-14 18:42:37 112

原创 红黑树

1.定义(1)结点为红色或黑色,(2)根结点为黑色,(3)叶结点为黑色的空结点。(4)每个红色结点的两个子结点为黑色。(5)从任意结点到每个叶子结点的所有路径上的黑色结点数目相同。2.自平衡通过左旋、右旋和变色达到平衡。左旋、右旋与AVL树操作相同。3. 插入操作插入结点为红色。(1)空树:直接插入(2)插入结点已存在:退出(3)插入位置的父结点为黑色:直接插入(4)插入位置的父结点为红色:(4.1)叔叔结点存在,且为红色。(4.2)叔叔结点不存在或为黑色,并且插入结点的父

2020-05-14 14:33:22 92

原创 B树 B+树

1.多级索引结构——m路搜索树2. B树——平衡的m路搜索树B树是一个m叉平衡搜索树,每个结点包含关键码和指向子树的指针,用于索引。具有以下性质:(1) 性质根结点的子女数为 [2, M]根结点以外的子女数为 [(M/2)取上限, M]每个结点的关键数个数为 [(M/2)取上限-1, M-1]所有叶子结点位于同一层B树一定是平衡m路搜索树,平衡m路搜索树不一定是B树。(2)用途常用于数据库索引或文件索引。B树/B+树和平衡二叉搜索树的区别:若是用于数据库索引,索引文

2020-05-14 13:48:57 175

原创 二分查找 & 二叉搜索树 & 平衡二叉搜索树(AVL树)

1. 二分查找定义:基于有序顺序表的查找,时间复杂度O(logN)//非递归int binarySearch(int a[], int key){ int left=0, right = a.size()-1; while(left<=right) { int mid = left + (right-left)/2; if(a[mid] == key) return mid; else if(a[mid]>key) right = mid-1; else left

2020-05-14 09:18:49 162

原创 哈夫曼树

哈夫曼树1. 定义:带权路径长度最小的扩充二叉树。(1)带权路径长度WPL:所有叶结点的权重*叶结点到根的长度的和,也等于根节点的权值。(2)扩充二叉树:只有度为0和度为2的结点。2. 构建从森林中选取两棵根结点的权值最小的扩充二叉树,构建一颗新的二叉树,新的二叉树的根结点的权值为两树的权值之和。将该树加入森林。(注意:最后结果不一定都是一边倾斜的。)哈夫曼编码1. 用途:数据压缩,根据字符出现的频率,赋予每个字符不同的编码,以获取最短的字符串的总编码长度。...

2020-05-13 18:42:50 172

原创

堆1. 实质:数组形式实现的完全二叉树2. 应用可以用来实现优先队列,插入、删除O(logN),最大、最小O(1)。3. 插入元素规则:新的元素插入在尾部,从下向上进行调整。j从最后一个元素开始,i=(j-1)/2.按照[10, 7, 2, 5, 1, 6, 5, 3 ]的顺序,依次插入构建最小堆。bool insert(int x){ if(currentSize == maxSize) return false; heap[currentSize] = x; currentSi

2020-05-13 18:25:17 97

原创 二叉树

二叉树1. 性质:(1)从上往下第i层,最多有2^(i-1)个结点。(2)深度为k的二叉树,最少有k个结点,最多有2^k - 1个结点。(3)假设叶结点有n0个,度为2的非叶结点有n2个,则n0 = n2+1。(4)完全二叉树,深度为k,则2k−1−1<n<=2k−12^{k-1}-1<n<=2^k-12k−1−1<n<=2k−1。n个结点,则k=log2n+1k=log_2^{n+1}k=log2n+1​ 取上限。2. 递归遍历(1)中序遍历(左根右,从

2020-05-13 14:40:14 118

原创 字符串匹配

字符串匹配问题描述:在字符串T中找模式串P的位置目标串T,长度为N模式串P,长度为MBF算法:时间复杂度:O(N*M)KMP算法:思想:BF算法在字符串失配后,目标串的指针都要回退到开始位置+1。KMP消除了目标指针的回退,提高模式匹配效率。既然消除了目标串的指针回退,那么变化的是模式串P的指针。当发生失配时,模式串P中哪个字符和目标串继续比较?–》next特征向量。next的计算int k=-1;(1)j==0,next[0] = -1;(2)j > 0,

2020-05-12 18:03:41 128

原创 数组和链表的区别

数组和链表的区别存储方式:数组连续存储,链表非连续存储,需要额外的指针存储空间。插入(删除)(1)头插:数组需要移动大量数据;链表插入速度快(但是需要讨论链表是否为空,若用带头结点的链表则不用讨论)。(2)尾插:数组插入速度快;链表插入速度慢(因为要找到尾节点,若用双向循环链表则快)。(3)中间:数组需要移动大量数据;链表不需要移动大量数据,但是都需要顺序查找插入的位置。查找:都需要顺序查找随机访问:数组O(1),链表O(n)。...

2020-05-12 12:32:13 117

原创 VS2015+opencv+realsense的DLL打包和调用

VS2015+opencv3.3.1+realsense2的DLL打包和调用DLL打包DLL调用如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入DLL打包我们...

2019-03-07 11:25:54 763 1

转载 GitBash问题。Permission denied (publickey). fatal: Could not read from remote repository

https://www.cnblogs.com/wmr95/p/7852832.html

2019-02-26 15:51:37 410

原创 VS2015+opencv3.3.1

VS2015+opencv3.3.1**

2019-02-26 13:53:41 295

转载 四元数,旋转矩阵,旋转向量转化图

四元数,旋转矩阵,旋转向量转化图

2018-09-12 16:26:58 1441

原创 ORB-SLAM2位姿估计

ORB-SLAM2位姿估计1.初始化位姿当跟踪bOK=true时,会依次优先选择“运动模式跟踪”,“关键帧模式跟踪”,若前两者失败,则说明跟踪失败bOK=false,bLOST=true,进入“重定位模式”。if(mState==OK) { // Local Mapping might have changed some MapPoints tracked in last fra

2018-05-05 21:53:52 3444

原创 ORB-SLAM2 with Octomap

ORB-SLAM2 with Octomap一、octomap下载和编译1.github下载,octomap-devel2.编译可以看见有两个文件夹,octomap和octoviscd octomapmkdir buildcmake ..makecd octovismkdir buildcmake ..make3.测试是否配置成功./bin/octovis ../octomap/shar

2018-05-02 18:53:42 2374 2

原创 TUM数据集RGBD-Benchmark使用

TUM数据集RGBD-Benchmark工具使用1.associate.py通过timestamp用于生成rgb和depth关联文件python associate.py rgb.txt depth.txt &gt; fr_pioneer_slam2.txt2.评估标准运行完rgbd_tum 后生成CameraTrajectory.txt(1)ATE 绝对误差—...

2018-04-22 22:26:09 5821 8

原创 Intel Euclid(三) with ORB-SLAM2

Intel Euclid(三) with ORB-SLAM2Intel Euclid 自带ROS Kinetic 系统,所以可以直接运行ORB-SLAM2,但是细节地方仍然需要注意。1.ORB-SLAM2 配置(1)从git下载ORB-SLAM2 (2)Pangolin配置 (2.1)openglsudo apt-get install build-essential s...

2018-03-28 20:08:50 569

原创 Intel Euclid(二)

Intel Euclid(二)将Main Unit连接Adapter、显示屏、鼠标、键盘等,可以开始操作了。1.上网进入浏览器–》Web Interface(127.0.0.1)–》Utilities–》Wifi Settings–》Available Networks–》scan–》连接wifi2.安装nomachine下载https://www.nomachine.com/...

2018-03-27 19:24:42 382

原创 Intel Euclid (一)

Intel Euclid

2018-03-26 19:05:40 832

原创 ORB-SLAM2 环境配置

ORB-SLAM2 环境配置环境:VMWare+Ubuntu16.04 + ORB-SLAM2一、提前准备1.Pangolinhttps://github.com/stevenlovegrove/Pangolin (1)opengl sudo apt-get install build-essential sudo apt-get install libgl...

2018-03-22 22:58:23 609

原创 ROS入门——文件系统

ROS入门——文件系统一、引用自定义头文件1.引用当前软件包头文件 CMakeLists.txt需要打开include_directories 2.引用同一工作空间中的其他头文件 (1)本软件包需要依赖其他软件包 catkin_create_pkg my_pkg std_msgs roscpp test_pkg (2)本软件包的CMakeLists.txt不需更改 (3)被...

2018-03-20 21:20:16 220

原创 ROS入门——安装与环境

ROS入门——安装与环境环境选择:VMware ,Ubuntu16.04 ,ROS Kinetic一、Ubuntu16.04安装安装包下载地址:https://www.ubuntu.com/download/server二、ROS Kinetic安装P.S. ROS Kinetic ONLY supports Wily (Ubuntu 15.10), Xenial (Ubun...

2018-03-20 16:38:22 595

原创 VS2013配置google test及demo

一、google test源码下载https://github.com/google/googletest二、.lib准备1.进入googletest/msvc文件夹,用vs2013打开gtest工程,(如果提示升级,升级即可)。2.分别在Debug和Release模式下进行编译,得到gtest/Debug/gtestd.lib, gtest_maind.lib和gtest/Release/gtes

2018-01-25 11:23:48 710

原创 Android音频总结

一、音频实现原理二、音频框架分析

2017-12-25 11:33:01 269

原创 定时开关机-Android4.4/6.0

定时开关机

2017-12-25 10:19:13 4747

原创 android下设置uboot环境变量

Uboot环境变量的作用在不改变源码、不用重新编译的情况下,可以使我们通过设置环境变量的值来改变uboot的一些设置,如bootdelay时间、机器码的值等等。

2017-12-25 10:07:14 1724

原创 Logcat总结

Logcat总结在做android系统开发时,需要查看实时打印的信息,因此记录Logcat使用。logcat输出示例D/PowerManagerService( 305): onSensorChanged: light value: 306.0优先级/标记:输出的内容(1)优先级 V — 明细 verbose(最低优先级) D — 调试 debug I — 信息 info W — 警告 wa

2017-09-22 10:44:58 271

原创 Android系统架构

Android系统架构(一)Linux Kernel(/kernel,/bootable,/devices)Android内核 对Linux内核进行了增强,增加了一些面向移动计算的特有功能。例如:低内存管理器LMK(Low Memory Keller)。源代码位于 drivers/staging/ android/lowmemorykiller.c匿名共享内存(Ashmem),mm/ashmem

2017-09-04 16:03:51 546

转载 Android 系统服务分析——输入子系统

Android 系统服务分析——输入子系统一、两个探讨对象:输入设备、输入系统1.输入设备:比如:触摸屏、键盘当输入设备可用时,Linux内核会在/dev/input/下创建对应的名为event0~n或其他名称的设备节点。当输入设备不可用时,则会将对应的节点删除。在用户空间可以通过ioctl的方式从这些设备节点中获取其对应的输入设备的类型、厂商、描述等信息。 从哪里来: 用户操作输入设备时–》设

2017-09-01 16:13:27 454

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除