自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TJU YanMing

Man should have a strong will or he will achieve nothing

  • 博客(22)
  • 资源 (13)
  • 收藏
  • 关注

原创 [数据库与SQL] - No.4 内连接(Inner Join)、外连接(Left Join、Right Join)及其在MYSQL中的实现

内连接(Inner Join)、外连接(Left Join、Right Join)及其在MYSQL中的实现

2017-08-25 17:01:10 568

原创 [软件测试] - No.7 Junit4及Harmcrest使用详解

Junit是我们编写Java 测试用例时候常用的方式。Junit4为我们提供了非常方便的单元测试,参数化测试,以及组合单元测试。一、常用注解解释:1. @Test注解@Test注解是我们最常见的注解,用于标注一个函数是测试函数,如下所示: @Test public void test() { assertEquals(3,1+2); }@Test提供两种参数,分别为ex

2017-08-19 16:49:44 2303

原创 [操作系统] - No.2 死锁、活锁,饥饿

死锁的规范定义是:如果一个进程集合中的每个进程都在等待只能由改进成几何中的其它集合才能引发的事件(释放某些资源),那么该集合就是死锁的。死锁的四个必要条件是:1.互斥条件:每个资源要么已经分配给一个进程,要么就是可用的2.占有和等待:已经得到了某个资源的进程可以申请其他资源3.不可抢占条件:一个已经被占有的资源不可以被其他资源抢占,只能由占有该资源的其他资源显式释放4.环路等待

2017-08-17 10:32:14 1747

原创 [算法与数据结构] - No.14 动态规划之多重背包

动态规划之多重背包

2017-08-14 22:33:52 230

原创 [算法与数据结构] - No.13 动态规划之完全背包

动态规划之完全背包一维数组实现

2017-08-14 21:36:27 276

原创 [算法与数据结构] - No.12 动态规划之01背包以及01背包一维数组优化

背包问题是我们使用动态规划的一个最常见的场景。所谓动态规划,就是基于一个递推公式及一个或多个初始状态,我们要找到某个状态的最优解,然后在它的帮助下,找到下一个状态的最优解。当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度, 因此它比回溯法、暴力法等要快许多。那么什么是背包问题呢?我们以最简单的01背包来描述以下场景:.有 N 件物品和一个容量为 V 的...

2017-08-14 20:33:48 1166 2

原创 [操作系统] - No.1 三种进程间通信:读者优先、写者优先、公平竞争

三种进程间通信:读者优先、写者优先、公平竞争

2017-08-12 15:52:11 1430 1

原创 [数据库与SQL] - No.3 SQL结构化查询训练

数据库 sql结构化查询训练

2017-08-11 11:50:40 2443

原创 [数据库与SQL] - No.2 SQL中的除法

SQL中的除法是用于解决什么场景的呢?我们假设student 表示学生信息,sc表示学生选课记录,course表示课程信息,其结构如下:CREATE TABLE `student` ( `Sid` varchar(10) DEFAULT NULL, `Sname` varchar(10) DEFAULT NULL, `Sbirth` datetime DEFAULT NULL,

2017-08-09 21:53:29 1239

原创 [数据库与SQL] - No.1 in、exists、all、any用法与区别

在使用数据库SQL中,当情况比较复杂时,我们需要使用嵌套查询。在嵌套查询是,我们经常会使用到exists、in、any、all等,在这里我就来辨析一下其之前的区别和关系exists和in:exists和in都适用于连接子查询的。什么叫子查询呢?就是我们在where语句中嵌套一个select语句。他们之间的区别在于:1. 使用in的时候,会把子句中的查询作为结果缓存下来,然后对主查询中的

2017-08-09 21:34:22 14143

原创 [算法与数据结构] - No.11 字符串匹配KMP算法

最近复习到字符串的地方,看到了字符串匹配的算法。学习了KMP算法,发觉KMP算法是一个设计非常巧妙同时特别美丽的算法。虽然很晦涩难懂,但是在理解以后越来越觉得这个算法很美。在这里记录一下。同时我借鉴了阮一峰老师的关于KMP算法的介绍以及图文,在最后补上我在网上学习的实现的比较的KMP算法举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串

2017-08-07 11:32:30 319

原创 [C与C++] - No.1 char c[] 与 char *c 以及如何在C中使用字符串

C语言中,并没有提供字符串这一种类型。C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符,然后最后以'\0'结尾。在C语言中,当我们需要使用字符串的时候,我们可以使用一下两种方式: char c[] = "hello world"; char *c = "hello world"

2017-08-05 11:02:17 364

原创 [算法与数据结构] - No.10 图论(3)- 最短路Dijkstra算法、Bellman-Ford算法和Floyd算法

最短路径问题:如果从图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小。三种算法主要用途:1.  边上权值非负情形的单源最短路径问题 —  Dijkstra算法 2. 边上权值为任意值的单源最短路径问题 — Bellman和Ford算法3. 所有顶点之间的最短路径 — Floyd算法Dijkstra算法:贪

2017-08-04 23:06:12 412

原创 [算法与数据结构] - No.9 图论(2)- 最小生成树Prim算法与Kruskal算法

普里姆算法的基本思想:    从连通网络 N = { V, E }中的某一顶点 u0 出发, 选择与它关联的具有最小权值的边 ( u0, v ), 将其顶点加入到生成树顶点集合U中。以后每一步从一个顶点在 U 中,而另一个顶点不在 U 中的各条边中选择权值最小的边(u, v), 把它的顶点加入到集合 U 中。如此继续下去, 直到网络中的所有顶点都加入到生成树顶点集合 U 中为止。如图所

2017-08-04 21:44:52 355 2

原创 [算法与数据结构] - No.8 图论(1)- 图的表示与遍历

在我们对图进行表示的时候,有两种邻接矩阵和邻接表两种表示:1. 图的表示邻接矩阵:在一个矩阵matrix中,matrix[i][j]表示边,在无权值的图中,其表示是i,j中是否有边;在有权值的图中,其表示i,j的权值#include using namespace std;int main(){ int matrix[100][100]; int n,

2017-08-04 17:47:18 425

原创 [算法与数据结构] - No.7 二叉树建立及其前序、中序、后序遍历

什么叫树?树的定义    树是由 n (n  0) 个结点的有限集合。如果 n = 0,称为空树;如果 n = 1,则有且仅有一个特定的称之为根(Root)的结点,它只有直接后继,但没有直接前驱;如果 n > 1,除根以外的其它结点划分为 m (m >0) 个互不相交的有限集 T1, T2 ,…, Tm,其中每个集合本身又是一棵树,并且称为根的子树(SubTree)。树的

2017-08-01 19:16:43 423

原创 [算法与数据结构] - No.6 堆排序

首先,什么叫堆呢?堆 ( Heap )设有一个关键字集合,按完全二叉树的顺序存储方式存放在一个一维数组中。对它们从根开始,自顶向下,同一层自左向右从 1开始连续编号。若满足           Ki 或        Ki >= K2i  && Ki >= K2i+1, 则称该关键字集合构成一个堆。前者成为最小堆,后者称为最大堆。通俗来说,小顶堆就是堆顶元素是整个二叉树中最小的

2017-08-01 18:41:12 244

原创 [算法与数据结构] - No.5 归并排序

迭代的归并排序算法就是利用两路归并过程进行排序的。其基本思想是:假设初始对象序列有 n 个对象,首先把它看成是 n 个长度为 1 的有序子序列 (归并项),先做两两归并,得到 n / 2(求天棚) 个长度为 2 的归并项 (如果 n 为奇数,则最后一个有序子序列的长度为1);再做两两归并,…,如此重复,最后得到一个长度为 n 的有序序列。算法描述:MergeSort.cpp

2017-08-01 16:20:12 298

原创 [算法与数据结构] - No.4 选择排序

基本思想 每一趟 (例如第 i +1 趟, i = 0, 1, …, n-2) 在后面 n-i 个待排序记录中选出排序码最小的记录,  作为有序序列中的第 i 个记录。待到第n-1 趟作完, 待排序记录只剩下1个,就不用再选了。算法描述:SelectSort.cpp#include using namespace std;int main(){ int n;

2017-08-01 16:13:35 280

原创 [算法与数据结构] - No.3 快速排序

基本思想是任取待排序对象序列中的某个对象 (例如取第一个对象) 作为基准, 按照该对象的排序码大小,将整个对象序列划分为左右两个子序列: 左侧子序列中所有对象的排序码都小于或等于基准对象的排序码 右侧子序列中所有对象的排序码都大于基准对象的排序码一趟快速排序的具体做法是:设两个指针low和high,设枢轴记录的关键字为pivotkey。首先从high所指位置起向前搜索找到第一个

2017-08-01 15:45:09 241

原创 [算法与数据结构] - No.2 折半插入排序

折半插入 基本思想 既然每个要插入记录之前的纪录已经按关键字有序排列,在查找插入位置时就没有必要逐个关键字比较,可以使用折半查找来实现。由此进行的插入排序称之为折半插入排序。思想和直接插入相同,只是从后向前的逐个比较替换为折半查找当算法进行到第i遍时,对于下表为i的数组元素arr[i]找到arr[i]应该插入的位置j将[j+1,i-1]内的数向后移以为,将arr[i]插入到arr[j+

2017-08-01 15:07:15 229

原创 [算法与数据结构] - No.1 直接插入排序

插入排序的基本思想 每步将一个待排序的对象, 按其排序码大小,  插入到前面已经排好序的一组对象的适当位置上, 直到对象全部插入为止当算法进行到第i遍时,对于下表为i的数组元素arr[i]:判断arr[i] 与[0,i-1]内数组的关系;找到下标j(j>=0 && jarr[j]将[j+1,i-1]内的数向后移以为,将arr[i]插入到arr[j+1]上算法描述为Inser

2017-08-01 14:59:21 321

caffe_ilsvrc12.rar

caffe 版本的 imagenet标注文件,以及imagenet原版标签 label 和编号之间的映射表:ILSVRC2012_mapping.txt

2019-06-09

最详解!Activiti学习文档

最详解!Activiti学习文档

2017-07-16

SSH开发jar包 SPRING4 Hibernate4 Struts2

SSH开发jar包 SPRING4 Hibernate4 Struts2

2017-05-13

Spring 3.x 企业应用开发实战

Spring 3.x 企业应用开发实战

2017-04-04

mujava 所需jar包和config文件

mujava 所需jar包和config文件

2017-03-31

mujava 所需jar包

mujava 所需jar包

2017-03-31

Selenium2.48

Selenium2.48

2017-03-24

geckodriver-v0.11.1-win64

geckodriver-v0.11.1-win64

2017-03-24

HDTune 中文破解

2017-03-14

Head First 设计模式英文版 PDF

Head First 设计模式英文版 PDF

2017-03-06

空空如也

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

TA关注的人

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