- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 数据结构笔记(七)——二项队列(binomial queue)(3)
左式堆将插入、合并和删除最小元的操作控制在O(logN),尽管时间已经够少了,但二项队列进一步降低了这个时间。二项队列(binomial tree)以最坏时间O(logN)支持以上操作,并且插入操作平均花费常数时间。二项队列不是一棵树,而是树的集合,称为森林,这里的树有特定的形式,同时也具有堆序性,叫做二项树(binomial tree)。如图为一个二项队列,有B0,B1,B2,B3,B4五棵...
2019-07-03 15:14:41
2530
2
原创 数据结构笔记(六)——散列(Hash Table)之双散列和再散列(4)
虽然平方探测排除了一次聚集,但散列到同一位置的元素仍然会探测相同的备选位置,比如当冲突函数为i^2时,对于每个要插入的X,其向前探测地步长都是0,1,4,9,16,这样对于散列到同一位置的X,他们都会探测相同的备选位置,这是二次聚集。双散列对平方探测法里面的冲突函数做了进一步的改进,F(i)进一步的复杂化,引入了另外一个函数,这个函数对每个X都会计算出一个值,而不是和二次函数一样探测同样的位置。比...
2019-07-01 20:15:03
5264
原创 数据结构笔记(六)——散列(Hash Table)之开放定址法(3)
前一篇讲了分离链接法,它的实现简单易懂,但是分离链接法需要指针,需要实现链表,给新单元分配地址也需要时间,因此速度有所下降。这一节的开放定址法不用链表来解决冲突,而是当遇到冲突时,尝试选择其他位置,直到找到一个空位置。,且F(0)=0.函数F为冲突解决方法。可以看到,数据将会被全部放入表中(不会有一个额外的链表用来存储数据),装填因子λ应该低一点(<0.5),这样出现冲突的可能会稍低一点。...
2019-07-01 19:17:52
338
原创 数据结构笔记(六)——散列(Hash Table)之分离链接法(2)
散列函数无法把所有的关键字散列到不同的位置,不可避免的会发生冲突,分离链接法是解决冲突的第一种方法。分离链接法的做法是将散列到同一个地址的关键字保留到一个表中,也就是每个位置分别对应了一个散列到该位置的表。 定义装填因子λ为散列表中元素个数与散列表大小的比值。分离链接法一般会使得表的大小和元素差不多(λ=1),...
2019-06-28 19:20:52
307
原创 数据结构笔记(六)——散列(Hash Table)之散列函数(1)
散列表(hash table)的实现叫做散列(hashing)。这是以常数平均时间O(1)进行插入、删除和查找的技术。散列表没有顺序,需要元素间排序信息的操作,如findMin、findMax不会得到有效支持(就是这东西不是这么用的,你可以实现,但效率不会很高)。理想情况下,散列表是一个包含关键字的具有固定大小的数组,数组大小一般被视为散列表的一部分。数据通过散列函数简单的计算映射到数组适当的位置...
2019-06-28 14:24:09
1010
原创 数据结构笔记(七)——左式堆/左偏树(leftist heap)(2)
前面二叉堆实现了优先队列基本的插入和删除最小元操作,但如果想要将两个堆合并的话就不太容易了,我们要把一个数组里的数据拷贝到另一个数组,如果数组1和数组2大小相同,那么合并操作的时间就是O(N)。果然合并还是需要指针呀,所以我们提出了左式堆,但是注意指针操作实际会比乘除运算更加耗费时间。左式堆(Leftist Heap)也有结构和有序性。左式堆的有序性和二叉堆一样,父亲小于所有的儿子。它不再是用...
2019-06-27 19:33:44
403
原创 数据结构笔记(七)——二叉堆(Binary heap)(1)
这一章讲的是优先队列,实现优先队列有各种方式,二叉堆是比较常见的。系统管理中有的程序优先级比较高,有时我们要调整某个程序的优先级或者有时需要结束某个进程,这种操作无法借助队列(先进先出)完成。我们提出了优先队列(priority queue)。优先队列是至少允许insert(插入,类似于队列中的入队)和deleteMin(删除最小者,等价于队列中的出队,功能是找到、返回、删除队列中的最小元素)...
2019-06-26 20:51:23
324
原创 数据结构笔记(五)——平衡查找树(AVLTree)(4)
AVL树是带有平衡条件的二叉查找树,这个平衡条件必须容易保持,而且必须保持树的深度是O(logN)。树,二叉树,二叉查找树,有这么多种树,我们一步一步给树这个结构添加限制条件,保证操作简单,复杂度不那么高。AVL树添加了平衡条件这一项,为什么呢?之前的二叉查找树存在的问题是一般情况下我们无法保证它的深度足够的小,虽然完全二叉树的深度logN确实够小了,但对一般的输入保持完全二叉树却不是简单的事...
2019-05-28 16:08:18
220
原创 数据结构笔记(五)——二叉树构造表达式树,先序、中序、后序遍历输出(2)
一、基本概念二叉树(Binary Tree):每个节点不能有多于两个的儿子(<=2)。二叉树平均深度为O(N^1/2),当然深度最大值为N-1。具有N个节点的二叉树需要N+1个NULL指针(如果表示二叉树的结构为一个节点包括本身数据和指向它两个儿子的指针),可以这样去想:如果只有一个节点,那就有两个空指针,每增加一个节点都会占用一个空指针的位置,同时引入两个空指针,其实每增加一个...
2019-05-17 16:45:53
1810
原创 数据结构笔记(五)——二叉查找树(Binary Search Tree)(3)
一、基本概念二叉查找树算是树里面比较常用而且重要的一类,二叉查找树相对于二叉树的不同之处在于,查找树中的每个节点X,它的左子树中的所有关键字要小于X的关键字值,而X的右子树中所有关键字的值大于X的关键字值。这种结构让二叉树按照一定的顺序排序,实现和搜索都会比较简单。二叉查找树的平均深度为O(log N)。二、二叉查找树的实现BSTree.h#pragma once#incl...
2019-04-11 16:29:16
359
原创 数据结构笔记(五)——树(Tree)(1)
一、基本概念树:一棵树由根节点(root)和0个或多个非空的子树组成,连接这些子树和根的叫做边(edge)。子树与根的关系为儿子(child)和父亲(parent),以此可推出祖父,孙子之类的关系,父亲,祖父之类的都可以叫做(真)祖先,儿子,孙子都可以叫做(真)后裔,自己可以是自己的祖先或者后裔。树的大部分操作的平均运行时间为O(log N),定义、理解、实现树用递归。对于一棵...
2019-04-11 16:28:33
440
原创 数据结构笔记(四)——队列(queue)
个人学习笔记。个人理解数据结构只是个概念,怎么实现完全看个人和项目 需求,可以用偏C语言的方式实现,也可以用C++中更偏向于类的方式,加上构造函数和析构函数等。看这些代码,和正常看C/C++代码一样看。因为之前有人问我一些问题,随便叨叨。队列同样算是表,它的特点是先进先出(FIFO)。一、数组实现队列这里用循环数组,队首留一个位置不存数据。QueueArray.h#pra...
2019-03-26 16:49:10
494
原创 数据结构笔记(三)——栈
栈算是一种表(list),但是它只能在表的末端(栈顶top)进行操作,栈的特点是后进先出(LIFO)。实现栈同样可以用链表和数组,一般大家比较喜欢用数组,避免了指针,而且没有分配内存的时间开销,不过需要事先声明数组大小,所有涉及到数组的都存在这个问题。一、用链表实现链表实现栈要记住的是表头为栈顶,因为稍微模拟一下就可以知道,如果把链表末尾当做栈顶,那么在出栈的时候栈无法指向这个结点的前...
2019-03-22 21:55:23
315
原创 VS2015 C++生成动态链接库(包括模板函数与类)
有一个项目需要把一个类用链接库的方式调用,而类的成员函数调用了一个模板函数。一、生成1、新建控制台程序,类型选择Dll,勾选导出符号会比较省事。 刚新建的项目中classdll.h和classdll.cpp如下图,可以看出基本的格式。2、编写.h和.cpp文件,按照自动生成的格式写我们自己的类。大致如下ClassDll.h// 下列 ifdef 块...
2018-12-06 19:48:52
2796
1
原创 数据结构笔记(二)——表
个人学习笔记。C++可以使用struct和class,并且C++中与C中的struct不一样,它更像class。参考:https://www.cnblogs.com/ccsccs/articles/4025215.html线性表:由同类型数据元素构成有序序列的线性结构。包括数据对象集和操作集。一、顺序存储实现(数组实现)利用数组的连续存储空间顺序存放线性表各元素arr...
2018-10-12 18:21:31
334
原创 数据结构笔记(一)——代码开题
个人学习笔记,不喜勿喷。1、空间使用:printN函数的实现。#include "stdafx.h"void printN(int n){ for (int i = 1; i <= n; ++i) { printf("%d\n", i); }}void printN(int n){ if (n>=1) { printN(n - 1); pri...
2018-10-10 15:20:53
209
原创 windows下faster-rcnn配置(python)学习笔记(一)
参考:Caffe: Faster-RCNN Python版本配置 (Windows)环境:win7,vs2013,cuda8.0,cudnn5.1,anaconda2+python2.7按照Caffe: Faster-RCNN Python版本配置 (Windows)配置,总结过程:1)环境变量cmd——>set查看所有环境变量;set path查看path;set ...
2018-09-19 16:46:20
366
原创 深度学习caffe(4)——caffe配置(GPU)
电脑:win7 64位,NVIDIA GeForce GTX1080 Ti,visual studio 2013.深度学习caffe(1)——windows配置caffe(vs2013+python+matlab)(cpu):https://blog.csdn.net/xitie8523/article/details/80510142cuda下载:https://developer...
2018-09-15 12:10:43
2684
转载 运行时库(runtime library)
一切从 默认库“LIBCMTD”与其他库的使用冲突,请使用 /NODEFAULTLIB:library、 error LNK2005: XXX已经在 libcmtd.lib中定义 MSVCRT.lib和 Runtime Library的不匹配项:值“MT_staticRealease”不匹配值“MD_DynamicRelea...
2018-09-15 11:34:33
10521
原创 深度学习caffe(3)——批量处理图片生成训练样本label的TXT文件
1)准备好图片,我这里在H:\TM\imageset目录下存放着训练样本 2)编写脚本新建一个get_filename.bat(新建一个txt文件,改名为get_filename.bat即可),在notepad++中编辑脚本(直接右键编辑也可以)dir H:\TM\imageset *.*/b>H:\TM\model\train.txtpause结果:...
2018-08-14 19:38:56
3037
7
原创 深度学习caffe(1)——windows配置caffe(vs2013+python+matlab)(cpu)
环境:windows7+vs2013+matlab2014a+anaconda2caffe下载:https://github.com/BVLC/caffe/tree/windows 或者我的网盘:https://pan.baidu.com/s/1VIbKcD8I0uk2GeB8Trvv6A1)修改CommonSettings.props文件进入刚才解压的caffe文件夹下(我的放在...
2018-05-31 19:01:35
667
原创 java JNI调用C++代码(给出一个简单java application示例和实际java web项目过程及错误解决)(二)
二、java web 服务器(tomcat)调用图像处理C++代码项目实例转载请注明:https://blog.csdn.net/xitie8523/article/details/80009821简单JNI示例:https://blog.csdn.net/xitie8523/article/details/79926948菜鸟在开始写代码时担心的是 1、我图像处理的方法封装了那么多方法,不可能一...
2018-05-30 10:46:29
319
原创 java JNI调用C++代码(给出一个简单java application示例和实际java web项目过程及错误解决)(一)
一、简单java application示例篇转载请注明:https://blog.csdn.net/xitie8523/article/details/79926948 本科毕业设计是图像分割相关的,在vs2013上写好了算法,需要用手机传图片到服务器,在服务器进行分割,服务器是用java写的,因此需要用java调用C++。刚来的菜鸟,一步一步走的,网上找了一篇博客跟着操作一下https:...
2018-05-30 10:43:23
370
原创 RuntimeLibrary不匹配
属性——>c/c++——>代码生成——>运行库有四个可选项,分别对应:(dll动态链接,d是debug)多线程调试Dll (/MDd)——MD_DynamicDebug 多线程Dll (/MD) ——MD_DynamicRelease 多线程(/MT) ——MD_StaticRelease 多线程(/MTd)——MD_StaticDebug如果报错: 值“M...
2018-04-02 12:57:54
786
原创 opencv、C++开发报错之丢失 opencv_worldXXXd.dll
转载请注明:https://blog.csdn.net/xitie8523/article/details/79665063问题描述:vs2010配置opencv3之前用的是opencv249,后来因为用到一个函数,在opencv2中没有,就直接配置了opencv3 解决方法:将opencv文件夹下bin内的.dll文件复制到相应...
2018-03-23 13:44:19
1489
原创 C++开发报错之 “模块计算机类型x64与目标计算机x86类型冲突”
转载请注明:https://blog.csdn.net/xitie8523/article/details/79665221问题描述:笔记本是win7,64位,vs2010开发,计算机操作系统上创建的工程是win32的,解决方案平台也是使用默认的win32,debug模式,在调一个opencv项目时报错“模块计算机类型x64与目标计算机x86类型冲突”。解决方法: (1)右键项目名,点击属性 ...
2018-03-23 13:16:01
991
thumbnailator-0.4.2.jar
2018-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人