- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 MySQL学习事务整理
本文是笔者对事务的理解,如有理解错误的地方,欢迎大家指正。提到MySQL肯定要说事务,那么事务的ACID原则肯定是重点,事务的ACID原则我个人理解是A:原子性,事务是一个整体不可以再切分,一个事务要么全部成功,要么全部失败,比如说转账这一件事,扣钱与加钱的操作应该是一个事务,否则就可能发生因为加钱服务因为自身故障导致扣钱没有加钱成功的事情发生。C:一致性,数据流动应该是同步的,你的账...
2019-08-06 11:09:42
176
原创 Drools+springBoot使用IDEA搭建Hello World demo
首先我们先进入idea创建maven项目,然后选择spring项目然后点击完成,在resources目录下创建META-INF文件夹和rules文件夹,然后点击pom文件进行输入下面内容<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...
2019-03-16 22:06:47
3230
5
原创 Spring+SpringMVC+mybatis框架整合时报错我是这样排查的
我最近在使用ssm框架进行系统搭建,ssm整合系统框架基本上构建ok,我测试去跑通整个流程,看看框架整合是否有问题,结果在我运行Tomcat之后,控制台报错以下信息 Error creating bean with name 'testController': Injection of autowired dependencies failed; nested exception is...
2018-10-12 22:19:31
307
原创 动态解析JSON字符串,将数据存入数据库
我在使用netty时候,由于不同设备发出的JSON字符串不一样,我需要一个动态解析JSON字符串方法去解决,我的思路是先将json字符串通过gson这个类转成map,由于在运行期间无法得知T的具体类型,对这个类的对象进行序列化和反序列化都不能正常进行。Gson通过借助TypeToken类来解决这个问题。//实例化gson Gson gson=new Gson();//实例化...
2018-10-04 17:57:11
8277
2
原创 C语言基础入栈,出栈操作
C语言入栈,出栈基础操作,里面非常详细了,我就不啰嗦了#include <iostream>#include <stdio.h>#include <stdlib.h>#include<cstring>#define ERROR -1typedef int ElementType;typedef enum { push, p...
2018-09-19 19:44:02
9855
原创 netty的DISCARD服务报错,我是这个样子解决的
我在学习netty时,练习的是DISCARD服务,在netty里面,丢弃服务就是Server端不去对Client端发送数据进行处理,直接进行释放,为了展示效果,我添加了部分反馈代码,以下是我的代码,Client端package com.nettyTest.NettyDemo;import io.netty.bootstrap.Bootstrap;import io.netty.bu...
2018-09-16 15:00:27
855
原创 FLOYD算法
输入:n*n维矩阵l[1...n,1...n],以便对于有向图G({[1,...n},E)中的边(i,j)的长度为l[i,j]输出:矩阵D,使得D[i,j]等于i到j的距离步骤(1)利用二维数组dist[i][j]记录当前vi到vj的最短路径长度,数组dist的初值等于图的带权邻接矩阵; (2)集合S记录当前允许的中间顶点,初值S=Φ; (3)依次向S中加入v0 ,v1… vn-1,每加入一个顶点...
2018-06-19 10:34:32
169
原创 Dijkstra算法(单源最短路径算法)
输入:含权有向图G=(V,E),V={1,2,3...n}输出:G中顶点1到其他顶点的距离 步骤:1.初始时,S只包含源点,即S={v},v的距离为0。U包含除v外的其他顶点,即:U={其余顶点},若v与U中顶点u有边,则<u,v>正常有权值,若u不是v的出边邻接点,则<u,v>权值为∞。2.从U中选取一个距离v最小的顶点k,把k,加入S中(该选定的距离就是v到k的最短路径...
2018-06-19 10:34:10
228
原创 PRIM算法
输入:含权连通无向图G=(V,E),V={1,2,3...n}输出:由G生成的最小耗费生成树T组成的边的集合步骤;1初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空,使用集合Vnew和Enew来描述所得到的最小生成树。;2重复下列操作,直到Vnew = V:a.在集合E中选取权值最小的边<u, v>,其中u为集合Vnew中的元素,而v不在Vn...
2018-06-19 10:33:57
860
原创 LCS算法
输入:字符串A和B,长度分别为n与m输出:A和B最长公共子序列的长度t步骤:1、定义dp [i][j]:表示字符串序列A的前i个字符组成的序列Ax和字符串序列B的前j个字符组成的序列By之间的最长公共子序列L(i,j )的长度(m ,n分别为Ax和By的长度,i<=m,j<=n)2、如果Ax [i] =By [j],那么Ax与By之间的最长公共子序列L( i,j )的最后一项一定是这个...
2018-06-18 20:33:35
271
原创 快速排序算法
输入: n 个元素的数组 A[1...n]输出: 按非降序排列的数组 A[1...n]步骤1首先我们从数组的left位置取出该数作为基准参照物。2:从数组的right位置向前找,一直找到比基准小的数, 如果找到,将此数赋给left位置3从数组的left位置向后找,一直找到比基准大的数, 如果找到,将此数赋给right的位置4重复“2.3步骤,直到left和right指针重合, 最后将基准插入...
2018-06-18 20:33:05
218
原创 寻找多数元素
输入: n 个元素的数组 A[1...n]输出:若存在多数元素,则输出;否则输出none步骤:1将计数器i置1,并令c=a[j] 2从a[2]开始扫,被扫描的元素和c相等,计数器+1,不相等计数器-1,3如果所有元素都扫描完毕并且计数器大于0,返回c作为多数元素的候选者。4如果在c和a[j](1<j<n)比较时计数器为0,那么返回对于a[j+1,...n]上的元素递归调用1.2.3过...
2018-06-18 20:32:36
397
原创 全排列算法
输入:正整数n输出:数1...n的所有的可能排列步骤:1当i取定为1的时候,余下序列为2 ..n,我们发现1和序列2 ..n的全排列的组合 {1,2 ..n全排列}。就构成了以1开头的序列的全排列。子问题就是求2 ..n序列的全排列了。可以发现此时子问题的规模减小了1。那么用递归就很直观了。2然后我们把i取定为2的时候。那么问题的求解就编程了{2,1.3...n全排列} 3.如此类推,直到所有i从...
2018-06-18 20:32:11
170
原创 堆排序
输入: n 个元素的数组 A[1...n]输出: 按非降序排列的数组 A[1...n]步骤1构造初始堆。将给定无序序列构造成一个大顶堆2 将堆顶元素与末尾元素进行交换,使末尾元素最大。然后继续调整堆,再将堆顶元素与末尾元素交换,得到第二大元素。如此反复进行交换、重建、交换。时间复杂度分析堆排序是一种选择排序,整体主要由构建初始堆+交换堆顶元素和末尾元素并重建堆两部分组成。其中构建初始堆经推导复...
2018-06-18 20:31:44
127
原创 建堆
输入: n 个元素的数组 A[1...n]输出: 把数组 A[1...n]转换为堆步骤1首先根据序列构建一个完全二叉树2初始选择最接近叶子的一个父结点,与其两个儿子中较小的一个比较,若小于儿子,则与儿子交换。3交换后再与新的儿子比较并交换,直至没有儿子。4再选择较浅深度的父亲结点,重复上述步骤。时间复杂度分析算法从第 n/2 个数开始,倒过来进行 sift-down。也就是说,相当于从 hea...
2018-06-18 20:31:19
964
原创 堆运算
Sift-up输入: 数组H[1...n]和位于1和n之间的索引i 输出:上移H[i](如果需要),以使它不大于父节点 步骤:1比较H[i]和它的父亲结点的大小,如果大于父亲结点,则与父亲结点交换。2交换后再和新的父亲比较,重复上述操作,直至该点的值小于父亲。时间复杂度分析每处理H[i]时,最多需要向根部方向交换 logn次。因此总的时间复杂度是 O(logn)Sifi-down输入: 数组H...
2018-06-18 20:30:51
604
原创 自底向上的合并排序算法
输入: n 个元素的数组 A[1...n]输出: 按非降序排列的数组 A[1...n]步骤1.定义t←1,输入A2.用变量s存储被合并序列的大小,开始时将s←t,每次执行外边的 while 循环时s被乘以2然后赋值给t。3.用while循环去进行合并序列,i+1,i+s,i+t用来定义两个要排序的序列的边界,同时调用 Merge 算法4.如果i+s<n,把剩余元素与大小为s的序列进行排序...
2018-06-18 20:30:17
1533
原创 合并算法
输入:数组A[1····m], p, q, r 为他的三个索引,并且有1 <= p <= q < r <= m, 两个子数组A[p····q]和A[q+1····r]各自按照升序排列。输出:合并两个子数组A[p····q]和A[q+1····r]的数组A[p····r]。步骤:1:使用两个指针s和t,初始化时各自指向A[p]和A[q+1], 再用一个空数组B[p····r]...
2018-06-18 20:29:39
3075
原创 三分查找算法
输入:n个元素的升序数组A[1···n]和元素x;输出:如果x=A[j],1<=j<=n,则输出就,否则输出0.步骤:1、先把整个区间的n/3的值lmid←n/3+ left。2、再取右侧区间的中间值rmid←lmid+right,从而把区间分为三个小区间。3、我们A[lmid]的值与x进行比较,如果相等就直接输出lmid结束算法,x比A[lmid]的值大我们就舍弃左区间进入第四步,否...
2018-06-18 20:29:07
9793
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人