- 博客(21)
- 问答 (2)
- 收藏
- 关注
原创 二分查找
二分法,一种用于查找的方法,输入一个有序序列,从中间位置开始,判断跟要查找数据的关系,相等则得到结果,若大于或小于,则在可能的一半数据中继续查找,仍然从另一半的中间位置继续查找,如此循环,直到找到要找的元素。(1)输入序列必须是有序的,因为在后续的查找过程中,需要用到大小关系来确定继续查找的范围;(2)当总元素个数为n,最坏情况下,二分法的之间复杂度为O(logN), 比如n=8,则最多需要三步就能找到;代码实现:https://github.com/Victcode/Algorit..
2021-01-04 23:27:11
131
原创 贪婪算法
1、NP完全问题贪婪算法是一种近似算法,近似算法不能保证最后求得的解是最优解,所以近似算法适用于很难求得最优解的问题,这种问题就是NP完全问题。先举两个典型的NP完全问题。问题1,集合覆盖问题。有m个电台,每个电台能覆盖p个州,共有n个州,从m个电台中能覆盖全部州的最小集合。要解这个问题要列出电台的所有组合,然后找出能同时覆盖n个州的最小组合,那一种有多少种组合呢,一共有2的m次幂个。数量非常大。问题2,旅行商问题。旅行商要去n个城市,想要找出怎么能让访问n个城市的路途最短。怎么让路途变短,
2021-01-04 23:24:37
505
原创 散列表
什么是散列表散列表也叫哈希表,输入某一关键字输出其对应的数值的数据结构散列表的生成依赖于散列函数,散列函数的要满足如下特性:(1)每次输入相同的关键字,输出的数字要相同;(2)不同的关键字要映射到不同的数字上,如果输入不同的关键字却得到了相同的输出数字,那么就不是一个好的散列函数;散列表的问题在创建散列表的时候会发生冲突,即将不同的关键字映射到相同的位置。一种简单的解决方式是,当不同的关键字映射到了同一个位置,就在这里用一个链表。这样导致的问题是散列表在查..
2021-01-03 13:36:32
146
原创 图及其遍历
什么是图图由点和边组成。边上有箭头叫有向图,没箭头叫无向图。边上的数值叫做权重,有权重的图叫有权图。有环形回路的图叫做有环图。图用于模拟不同的东西是如何连接的。图的表示图的表示方式先确定好,这关系到之后在实现遍历算法的时候如何访问图上的节点和权重等信息。两种表示方式:邻接矩阵、邻接表以表示下面的图为例,下图是一个带权值的有向图,顶点为:V0-V5,边上的数值为权重(1)邻接矩阵(2)连接表,在图特别系数的情况下,链接表更有效邻接矩阵比较容易理解
2021-01-03 13:06:21
465
原创 最短路径算法
两种最短路径算法:Dijkstra和BellmanDijkstra问题:在一张图中,从一点出发到大其他个点的最短路径。思路:假设a到b之前的直达路径是10,如果求a到b的最短路径,就需要抄近路,比如加个c,a->c->b,看这条路径是不是比10小。然后是这个c怎么选择。如下图,求取顶点1到其它顶点的最短路径。除去1,还有五个顶点,先列出1到其它顶点的距离,在不经过其它顶点的情况下的距离,无法直达的用正无穷表示,这里用00代替,可以得到一个距离数组distant={0, 1,
2021-01-03 01:01:44
354
原创 C语言相关指令
1、__restrict用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改。2、__attribute____attribute__可以设置函数属性、变量属性和类型属性,也可以用来设置结构体和unio的属性语法格式为:__attribute__ ((attribute-list))attribute-list有六种,即:aligned, packed,
2020-06-30 14:42:30
7885
原创 Linux下编译OpenCV静态库
安装相关依赖项,sudo apt-get install build-essential sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libtiff4-dev libswscale-dev libjasper-dev sudo apt-get install cmake sudo apt
2017-07-12 12:33:12
611
原创 OpenCV常用函数总结
总结一些在使用opencv时常用的函数,都是简单的实现,以便使用的时候方便查找,并没有对函数的具体解释,如果需要可以到官方文档查找。1、图像上画圆/点cv::Point center = cv::Point(mouse20_x, mouse20_y);int radius = 3;circle(frameCopy, center, radius, cv::Scalar(0, 0, 255), -
2016-11-29 10:00:15
249
原创 C++库之Boost简介与安装使用
是什么Boost并不是C++的标准库,江湖人称C++准标准库。Boost库是一组基于C++标准的现代库,其源码按 Boost Software License来发布,允许任何人自由地使用、修改和分发。Boost社区负责开发和发布Boost库,该社区有C++标准委员会发起提倡并建立,社区面向去求的C++开发者,开发和收集高质量的库,作为对C++标准的补充。那些被证实有价值且对于C++应用开发非常重要的
2016-11-08 15:32:17
289
原创 C++标准库与STL简介
百度百科云:C++标准库,C++ Standard Library,是类库和函数的集合,其使用核心语言写成,由C++标准委员会制定,并不断维护更新。就是官方的大牛提前编译封装好的一些函数和数据结构等,在使用C++编程的时候直接调用即可。比如想实现比较两个字符串的大小,自己一行行的写代码不难实现,但标准库中提供了strcmp函数,包含相关头文件之后,直接调用即可实现。要分清两个概念:标准库和标准模板库
2016-11-07 18:54:41
227
原创 带参数的main函数 --main( int argc, const char** argv )
在copy和学习别人的代码的时候,尤其是外国友人的开源代码,经常会遇到这种写法: int main( int argc, const char** argv ) 自己平时写的时候没有这种习惯,每次遇到都有点懵,这样写是什么意思?为什么这么写?这么写有什么好处?在此学习总结一下。具体使用只针对Windows系统下VS编程环境。1、是什么main(int argc,char *argv[],char
2016-10-28 18:31:32
485
原创 基于COM组件实现C++与Matlab的混合编程
C++与Matlab实现混合编程的方式有很多,各种方式有各自的优缺点。因为是做图像处理,需要调用Matlab中关于图像处理的函数,通过COM组件能调用几乎所有的Matlab的函数,所以采用了COM组件的方式。由于包含的函数较多,调用COM组件有一个缺点,会产生一个很大的依赖文件。本文主要是想介绍在VS环境下通过调用COM组件的方式调用Matlab程序。一、COM简介简单地介绍以下COM组件。COM
2016-09-27 15:59:30
883
原创 近几年跟踪算法总结
跟踪算法在视频处理中至关重要,跟踪即检测到想要的目标对象,并盯住不放。在近几年出现的算法中,大多是将跟踪与检测相结合,来实现更好的跟踪效果。在今年的CVPR大会上,更是出现了基于CNN学习的跟踪算法,每种算法各有利弊,具体还要根据实际情况进行取舍。本文总结了近几年出现的不错的跟踪算法,首先对该算法的特点进行了简单的总结,具体内容及讲解请参看链接中大神的博文。另外这些算法大多提供了开源的代码和论文,
2016-09-21 11:55:58
1254
近几年跟踪算法总结
跟踪算法在视频处理中至关重要,跟踪即检测到想要的目标对象,并盯住不放。在近几年出现的算法中,大多是将跟踪与检测相结合,来实现更好的跟踪效果。在今年的CVPR大会上,更是出现了基于CNN学习的跟踪算法,每种算法各有利弊,具体还要根据实际情况进行取舍。本文总结了近几年出现的不错的跟踪算法,首先对该算法的特点进行了简单的总结,具体内容及讲解请参看链接中大神的博文。另外这些算法大多提供了开源的代码和论文,
2016-09-21 11:48:46
117
原创 面试/笔试_sizeof之应用实例
在学习sizeof的具体应用实例之前,需要对计算机的一些存储机制和各数据类型的大小有一定的了解。本文将相关知识放在了文章的结尾,主要是数据的对齐问题和数据类型的大小。下面是总结的sizeof的实例应用。一、单个变量int a = 0;unsigned int b = 10;char c = ‘z’;char *p = NULL;求 sizeof(a); //=4,此处即为int
2016-09-15 17:34:20
241
原创 面试/笔试_sizeof之应用实例
在学习sizeof的具体应用实例之前,需要对计算机的一些存储机制和各数据类型的大小有一定的了解。本文将相关知识放在了文章的结尾,主要是数据的对齐问题和数据类型的大小。下面是总结的sizeof的实例应用。 一、单个变量 inta = 0; unsignedint b = 10; charc = ‘z’; char
2016-09-15 17:30:34
92
原创 C++引用的基本概念与应用
对网上资料的学习与总结。原文地址:http://www.cnblogs.com/gw811/archive/2012/10/20/2732687.html一、基本概念1、定义目标变量的别名,对引用的操作与对目标变量的操作完全相同。2、声明类型标志符 &引用名 = 目标变量名;例:int a; Int&r_a = a; //声明了a的引用为r_a注
2016-09-14 19:32:25
268
原创 一些相似概念的区分
1、const 与 #define Const与#define都可用来定义常量。 (1)处理方式。#define是在预处理阶段进行替换,const是在编译运行阶段使用 (2)定义的常量类型不同 define定义的常量没有类型,因此也不会进行类型安全检查。 const定义的常量有类型,能够进行类型安全检查。 (3)存储方式不同 define定义的常量不会分配内存,而是使用多少次,就替换
2016-09-13 11:25:56
134
原创 Android之Genymotion使用问题
AS自带的模拟器半天打不开,所以决定使用Genymotion,在使用的过程中遇到了几个问题,自己在百度上查找、尝试很多方法之后,终于解决了,速度确实挺快。在此总结一下。(没有截图,可供尝试) 1、在官网上下载的Genymotion+VB的版本,安装之后却无法使用(环境:win7 64),提示找不到VM虚拟机,或是VM虚拟机无法使用。其实问题主要在VM虚拟机,在网上查了很多解决方法,我最终使用的如下
2016-07-18 11:06:57
505
原创 opencv学习问题之addWeigeted函数使用
跟大神学习了addWeigeted,其具体的使用方法我就不再说明了,总结一下使用过程中遇到的问题首先确定自己读取图片的方式一定要对,即如果不再工程目录下,用"硬盘:\\文件夹\\图片名. 格式"addWeigehte函数使用的两张图片大小尺寸要一直,如果不一致则会出现如图所示情况我使用的resize,转到定义会有void resize( InputArray src, Outp
2015-09-28 11:48:18
466
空空如也
coursera机器学习的课程,用matlab怎么提交作业呢
2015-12-10
用eciplise生成的apk文件,安装后,运行闪退
2015-11-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人