自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序缘

Talk is cheap, show me the code.

  • 博客(77)
  • 资源 (40)
  • 收藏
  • 关注

原创 TCP协议详解

TCP连接的建立正常情况下需要三次握手,断开正常情况下需要四次挥手;文章中介绍了TCP的特殊名词,各种标志位、状态解释及状态变迁图;重点介绍了TCP协议可靠性保障的原因,逻辑清晰的总结了TCP协议重传、流量控制和拥塞控制策略等;

2016-10-23 13:27:03 6060 2

原创 Unity3D控制人物移动跳跃,处理CharacterController的isGrounded总是返回false问题

在Unity3D中控制人物移动的方法很多,可以使用transform.Translate方法,但为了不穿越其他物体,需要使用刚体rigidbody。还可以使用角色控制器,角色控制器是自带刚体Rigidbody和碰撞器Collider的,移动可以使用CharacterController组件。在使用CharacterController组件实现跳跃时,需要检测人物是否在地面上,Character

2016-05-10 09:35:13 24458 3

原创 C#学习笔记

1、C#变量命名可以以邮件符@开头2、C#中字符串值可以@开头,如此该字符串则是逐字指定的字符串,两个双引号中的任意字符都作为字符串处理,特殊字符也不需要转义,但是双引号需要,否则会被视为字符串的结束。如:"asdasd:item1item2"3、C#支持goto语句4、C#的switch语句不允许从一个case的

2016-05-07 00:26:09 3581

原创 Spring Transaction template 事务模板

http://jinnianshilongnian.iteye.com/blog/1441271Nested:嵌套事务支持,使用PROPAGATION_NESTED指定,如果当前存在事务,则在嵌套事务内执行,如果当前不存在事务,则创建一个新的事务,嵌套事务使用数据库中的保存点来实现,即嵌套事务回滚不影响外部事务,但外部事务回滚将导致嵌套事务回滚Nested和Re

2016-05-07 00:24:37 1536

原创 Spring AOP原理

一、AOP(Aspect Oriented Programming)是Spring框架的核心技术之一,要理解AOP,先理解一些基本概念。*横切关注点(Cross-cutting concerns):*在软件开发中,分布于应用中多处的相同功能,例如:日志、安全和事务管理等,它们都是贯穿在软件的各个功能模块的,但又不是各功能模块的核心功能。*切面(Aspect):*横切关注点可以被模块

2016-05-07 00:21:34 4003

原创 Spring bean的初始化和销毁

另外一个方法让bean实现Spring的InitializingBean和DisposableBean接口,InitializingBean的afterPropertiesSet()和DisposableBean的destroy()方法分别会在bean初始化和移除应用上下文时被调用,这样Spring容器就会让它们在Bean的生命周期中被调用。如果许多bean都需要设置相同的初始化和销毁方法

2016-05-07 00:20:05 1100

原创 Spring bean的三种注入方式

Spring的一个重要原理就是IOC(Inverse Of Control),即控制反转。IOC就是一种将组件依赖关系的创建和管理置于程序外部的技术,在Spring中Bean组件的实例化和依赖关系的管理控制都由Spring容器负责,对象与对象之间的关系可以简单的理解为对象之间的依赖关系:在 类 A 需要类 B 的一个实例来进行某些操作时,比如在类 A 的方法中需要调用类 B 的方法来完成功能,叫做

2016-05-07 00:17:30 6005

原创 Spring bean的三种创建方式

1、创建Spring工程使用eclipse创建一个Spring工程,一个简单的方法就是先创建一个Java工程,然后将Spring的Jar包全部放入到工程里面即可开始编写基于Spring框架的程序。Spring的Jar包可以从github上的源码中取得,下载地址是:https://github.com/spring-projects/spring-framework。下面是在学习《S

2016-05-07 00:12:52 9278

原创 Spring 简介

在1996年,Java语言兴起之时,因其Applet可以创建富客户端和动态的Web应用而受到广泛关注。然而Java语言因Applet而来,却是因组件化而留,因为Java可以使用模块化编程,从而用于构建复杂系统。后来,Sun公司发布了JavaBean主要用于构建用户界面窗口部件。随后,Sun又发布了EJB,提供了企业级服务,但是EJB却并没有使得企业级应用开发变得简单,反而使代码实现变得异常复杂。随

2016-05-07 00:10:27 4281

原创 进程、线程以及CPU调度

一、进程概念进程是执行中的程序,形成所有计算的基础。更完整的解释是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。二、进程状态进程有五种状态,分别是:新的:进程正在被创建运行:指令正在被执行等待:进程等待某个事件的发生

2015-11-15 00:13:06 10472

原创 CentOS系统下Hadoop、Hbase、Zookeeper安装配置

最近两天给一个项目搭建linux下的大数据处理环境,系统是CentOS 6.3。主要是配置JDK,安装Tomcat,Hadoop、HBase和Zookeeper软件,本人在Hadoop这方面也是新手,配置这个环境遇到过许多问题,查了许多资料,这里做一个总结,以便日后回顾。首先是账户权限的修改,安装软件环境需要上传文件和一些系统文件的修改权限,所以最好设置成root权限权限修改方法:http

2014-10-17 21:02:04 2321

原创 AVL树(平衡二叉查找树)

1、AVL树的定义平衡二叉查找树,又称作AVL树(以提出此树的两人人名命名的),AVL树是一种高度平衡的二叉查找树,它或者是一颗空树,或者是具有下列性质的二叉查找树:(1)它的左子树和右子树都是平衡二叉查找树(2)它的左子树和右子树的深度差的绝对值不超过1将二叉树上的节点的左子树的深度减去右子树的深度的值定义为节点的平衡因子,因此平衡因子的值只可能是:-1、0 和 1。

2014-09-13 20:47:39 1472

原创 算法导论 第13章 红黑树(图文详细解说)

二叉查找树的基本操作包括搜索、插入、删除、取最大和最小值等都能够在O(h)时间复杂度内实现,因此能在期望时间O(lgn)下实现,但是二叉查找树的平衡性在这些操作中并没有得到维护,因此其高度可能会变得很高,当其高度较高时,而二叉查找树的性能就未必比链表好了,所以二叉查找树的集合操作是期望时间O(lgn),最坏情况下为O(n)。红黑树也是一种二叉查找树,它拥有二叉查找树的性质,同时红黑树还

2014-08-27 23:36:18 2743 1

原创 算法导论 第12章 二叉查找树

二叉查找树是一种树数据结构,它与普通的二叉树最大的不同就是二叉查找树满足一个性质:对于树中的任意一个节点,均有其左子树中的所有节点的关键字值都不大于该节点的关键字值,其右子树中的任意一个节点的关键字值都不小于该节点的关键字值。在二叉查找树上可以进行搜索、取最小值、取最大值、取指定节点的前驱、取指定节点的后继以及插入和删除节点操作,因此二叉查找树和堆(大顶堆和小顶堆)一样,也可以做优先队列,都能够在 O(lgn) 的时间内取得集合的最大值和最小值。一个二叉查找树的期望高度为O(lgn),因此在二叉查找树上的基

2014-08-27 00:52:59 2029

原创 算法导论 第11章 散列表

散列表是主要支持动态集合的插入、搜索和删除等操作,其查找元素的时间在最坏情况下是O(n),但是在是实际情况中,散列表查找的期望是时间是O(1),散列表是普通数组的推广,因为可以通过元素的关键字在数组对元素进行直接定位,所以能够在O(1)时间内访问数组的任意元素。

2014-08-26 12:03:05 1541

原创 模式匹配 KMP算法详解

/* * KMP 模式匹配算法 */#include #include using namespace std;/* * 计算模式串的next数组 * 模式串既做主串,又做模式串,进行匹配 * 时间复杂度为O(m),m为模式串的长度 */void countNext(char* strPattern, int len, int* next){ int i = 0, j

2014-08-25 16:48:13 1184

原创 基础数据结构 链表、栈、队列

数据结构是程序设计中一个非常重要的部分,基本的数据结构包括链表、栈和队列,当然高级一点的还有树、图等,实际上链表、栈和队列都是线性表,只是在操作和表示方式上有所不同,线性表用顺序结构表示就是顺序表,用链结构表示就是链表,如果对线性表的操作加以限制,只能有在表尾进行插入和删除元素,这就变成栈了,如果只能允许元素从表尾插入,表头删除,这就变成队列了。链表/* * 数据结构 链表 *

2014-08-24 19:15:44 1887 1

原创 排序算法小结

经典的排序算法有十种,分别是:选择排序、插入排序、希尔排序、冒泡排序、堆排序、合并排序、快速排序、计数排序、基数排序和桶排序。下面对这些算法分类如下:选择排序:简单选择排序、堆排序插入排序:直接插入排序、二分插入排序、希尔排序快速排序:快速排序、随机化快速排序线性时间排序:计数排序、基数排序、桶排序其他:冒泡排序、合并排序这些排序排序算法的时间复杂度,稳

2014-08-20 14:40:40 988

原创 算法导论 第9章 中位数和顺序统计学(线性时间选择算法)

/* * 算法导论 第九章 中位数和顺序统计学 * 线性时间选择元素 */#include #include using namespace std;int minimum(int *arr, int len);int randomizedSelect(int *arr, int p, int r, int i);int randomizedPartition(int *ar

2014-08-18 18:18:28 2835

原创 算法导论 第8章 线性时间排序(计数排序、基数排序、桶排序)

/* * 算法导论 第八章 线性时间排序 * 计数排序、基数排序和桶排序 */#include #include #include #include using namespace std;void printArray(int arr[], int len, char *str){ cout << str << endl; for (int i=0; i<len; i

2014-08-11 22:14:10 1397

原创 算法导论 第7章 快速排序

快速排序在最坏情况下的时间复杂度为O(n^2),虽然在最坏情况下运行时间比较差,但是快速排序通常是用于排序的最佳选择,因为其平均性能相当好,期望的运行时间为O(nlgn),且在O(nlgn)的记号中隐含的常数因子很小。快速排序和合并排序有相似之处,都是需要划分序列,在合并排序中,划分的过程很简单,直接选择元素序列的中间位划分位置,排序是在合并的过程中实现的,所以合并排序的合并过程很重要;相比合

2014-08-10 14:13:32 1477

原创 算法导论 第6章 堆排序(简单选择排序、堆排序)

堆数据结构实际上是一种数组对象,是以数组的形式存储的,但是它可以被视为一颗完全二叉树,因此又叫二叉堆。堆分为以下两种类型:大顶堆:父结点的值不小于其子结点的值,堆顶元素最大小顶堆:父结点的值不大于其子结点的值,堆顶元素最小堆排序的时间复杂度跟合并排序一样,都是O(nlgn),但是合并排序不是原地排序(原地排序:在排序过程中,只有常数个元素是保存在数组以外的空间),合并排序的多有元素都被

2014-08-05 22:03:46 1289

原创 算法导论 第2章 算法入门(直接插入排序、希尔排序、冒泡排序、合并排序)

本章主要是算法知识的基础讲解,介绍了循环不变式,几个简单的排序算法,递归分治算法等内容。1、循环不变式循环不变式主要用来说明算法的正确性,那么什么是循环不变式呢,其实就是在循环过程中,一些元素数据必须保持的一些性质,例如在插入排序中,数组为A,必须保证三个性质:(1) 初始化:在循环开始之前,循环不变式是成立的,即:A[0]是有序的,A[1...n-1]是无序的。(2) 保持:在循

2014-08-05 15:07:31 1395

原创 USACO Section 2.2 Party Lamps

/*ID: lucien23PROG: lampsLANG: C++*//* * 此题的技巧之处就是需要注意到任何button只要按下2的倍数次就相当于没有按 * 所以其实只需要考虑4个按钮,每个按钮是否被有效按下过一次就好 * 直接使用枚举法,一共只有2^4=16种情况 * 对于每种情况需要知道被按下的有效次数(也就是被按下过的按钮数),必须满足 * (C-有效次数)%2=0

2014-08-04 15:13:27 1086

原创 USACO Section 2.2 Runaround Numbers

/*ID: lucien23PROG: runroundLANG: C++*/#include #include #include using namespace std;int main(){ ifstream infile("runround.in"); ofstream outfile("runround.out"); if(!infile || !outfil

2014-08-04 13:32:08 1041

原创 USACO Section 2.2 Subset Sums

/*ID: lucien23PROG: subsetLANG: C++*/#include #include using namespace std;int main(){ ifstream infile("subset.in"); ofstream outfile("subset.out"); if(!infile || !outfile) { cout <<

2014-08-04 11:00:15 1246

转载 程序中的堆栈解析

在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。要点:堆:顺序随意栈:先进后出堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2014-08-01 14:32:05 3761

转载 程序中的内存分配解析

1.内存分配方式    内存分配方式有三种:    [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。    [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。    [3

2014-08-01 14:26:58 691

原创 循环链表 约瑟夫环问题实现

#include#includetypedef struct LNode{//构造结点类型 int data; struct LNode *next;}*LinkList;void CreateList(LinkList &L,int n);//创造一个循环链表void OutList(LinkList &L,int m);//数到m出列,并释放该结点void main()//主

2014-08-01 11:12:14 993

原创 循环队列 队列的顺序表示和实现

#include#include#define MAXQSIZE 100typedef struct//构造循环队列数据类型{ int *base;//队列数组指针 int front; int rear;}CircleQueue;void InitQueue(CircleQueue &Q);//初始化创造循环队表void QueueLength(CircleQueue Q);/

2014-08-01 11:11:19 969

原创 无栈非递归求赫夫曼编码算法

//-----------无栈非递归遍历赫夫曼树,求赫夫曼编码---------------- HC=(HuffmanCode)malloc((n+1)*sizeof(char *)); p=m; cdlen=0; for(i=1;i<=m;++i) HT[i].weight=0; while(p) { if(HT[p].weight==0) { HT[p].weight==1

2014-08-01 11:07:50 2771

原创 赫夫曼树编码及解码

#include#includetypedef struct{ char content; int weight; int parent,lchild,rchild;}HTNode,*HuffmanTree;//动态分配数组存储赫夫曼树typedef int **HuffmanCode;//动态分配数组存储赫夫曼编码表void HuffmanCoding(HuffmanTree

2014-08-01 11:06:38 2094

原创 顶点间最短路径求解

#include#define INFINITY 100 //表示∞#define MAX_VERTEX_NUM 20 //最大顶点个数typedef enum {DG,DN,UDG,UDN} GraphKind;//图的种类typedef struct//邻接矩阵{ int adj; //表示权值 char *info; //与弧相关信息的指针}AdjMatrix[MAX_VER

2014-08-01 11:06:20 1125

原创 广义表建树算法

void CreateBiTree(BiTree &T){//用广义表来创建并输入二叉树 int k; char ch; BiTNode p,q; SqStack S; CreateStack(S); if(!(T=(BiTree)malloc(sizeof(BiTNode)))) { printf("ERROR!\n"); return; } T->data=0; T

2014-08-01 11:05:38 2257

原创 单链表的插入与删除

#include#includetypedef struct LNode//构造结点类型{ int data; struct LNode *next;}*LinkList;void InitList(LinkList &L,int len);//创建链表void InsertList(LinkList &L,int i,int e);//插入元素void DeleteList(Li

2014-08-01 11:05:01 1769

原创 二叉树的基本操作及遍历

#include#include#define LENGTH 100 //初始分配栈的长度#define ADD_LEN 10 //栈长增量typedef struct BiTNode{//构造二叉树结点类型 char data; struct BiTNode *LChild,*RChild;}BiTNode, *BiTree;typedef struct {//构造栈的数据类

2014-08-01 11:04:43 1380

原创 栈的基本操作 出栈与入栈

#include#include#define LENGTH 100 //初始分配栈的长度#define ADD_LEN 10 //栈长增量typedef struct {//构造栈的数据类型 int *base; int *top; int stacksize;}SqStack;void CreateStack(SqStack &S);//初始化一个栈void PushS

2014-08-01 11:02:53 5021

原创 数据结构 串的堆分配

#include#includetypedef struct{ char *ch; int length;}HString;void StrAssign(HString &T,char *chars);void StrLength(HString S);void StrCompare(HString S,HString T);void ClearString(HString &S

2014-08-01 11:01:32 1406

原创 栈应用 表达式求值

#include#include#define LENGTH 100 //初始分配栈的长度#define ADD_LEN 10 //栈长增量typedef struct //定义字符栈{ int *base; int *top; int stacksize;}SqStack;void InitStack(SqStack &S); //初始化一

2014-08-01 11:00:48 1364

原创 模式匹配 KMP算法中Next值求解

#include#include#includetypedef struct{ char *ch; int length;}HString;void StrAssign(HString &T,char chars[]);int get_next(HString T,int next[]);void main(){ HString T; char chars[80]; in

2014-08-01 10:59:44 1802

约瑟夫环问题

严蔚敏版数据结构中关于约瑟夫环问题的求解算法C代码

2013-11-24

数据结构讲义-严蔚敏版

严蔚敏版的数据结构讲义,很不错,是学习数据结构的不错辅导资料!

2013-11-24

数据库系统课程设计——银行管理系统

这是一个银行管理系统,里面还包含有详细的数据库代码,包括数据查询、触发器、建表等等!

2012-12-24

计算机组成原理课程设计—微程序设计

这是一个计算机组成原理的课程设计,内有课程设计任务书和微程序设计的源程序!

2012-12-24

软件工程课程设计—基于VS2010的聊天系统(C++MFC)

敢收这么高的分值,就敢保证代码质量,这个聊天系统是利用C++MFC基于VS2010编写,整个工程代码有6000+行,可以直接运行,代码有一定的注释,容易看懂!!

2012-12-24

编译原理课程设计—基于VS2010的编译器程序

编译原理课程设计源代码,一个基于VS2010的MFC程序,主要实现对输入的程序实现编译解析!

2012-12-24

Linux课程设计—基于服务器的文件共享程序

这是一个运行于Linux环境下的基于服务器的文件共享程序,拥有网络连接,文件上传下载以及管理等功能!

2012-12-24

C++课程设计—猜数游戏(基于VC++6.0)

这是一个C++课程设计的源程序,做的是一个猜数游戏,基于VC++6.0,界面美观,程序健壮性强!

2012-12-24

C++MFC象棋程序

C++MFC象棋程序,这是基于VC++开发的程序!

2012-03-01

C++MFC五子棋游戏程序

C++MFC五子棋游戏程序,这是基于C++6.0以上环境编写!

2012-03-01

C++MFC飞行器程序

C++MFC飞行器程序,这是基于C++编写的程序!

2012-03-01

C++斗地主程序

这是一个用C++编写的斗地主小程序!环境是基于VC++6.0以上

2012-03-01

VS2010组播程序

这是一个基于VS2010的组播程序,界面美观,且程序清晰!

2012-03-01

基于VS2010的汉诺塔程序

这是一个汉诺塔小程序,是在Vs2010环境下用C++编写

2012-03-01

基于VS2020的聊天程序

这是基于VS2010的用C++编写的聊天程序!

2012-03-01

操作系统实验——进程管理系统

这是操作系统课程的实验,是基于Java的进程管理系统!

2012-03-01

Java 文件管理系统小程序(操作系统实验)

此程序是完全参照Windows7资源管理器的模型编写而来,基于Java的eclipse环境应用!

2012-03-01

用JAVA编写的计算器程序

这是基于Java的计算机程序,此程序用能齐全,完全参照windows7上的计算机来编写的!

2012-03-01

Java中JTable的用法

这是一个针对Java开发环境eclipse中的JTable应用介绍的详细资料

2012-03-01

关于const在C++中的用法

关于const在C++中的用法,绝对有意义的总结!

2011-09-15

北大ACM试题及其代码

北大ACM试题及其代码,练习练习,对程序员很有好处!

2011-09-15

感染U盘程序(C++代码)

感染U盘程序(C++代码),一个绝对值得一学并展示在别人面前的小程序!

2011-09-15

Visual_Studio_C++_2010入门

Visual_Studio_C++_2010入门,教你如何让运用新工具!

2011-09-15

gbk+unicode+汉字编码对照表

gbk+unicode+汉字编码对照表,一个不错的工具书!

2011-09-15

深度探索C++对象模型

[大家网]深度探索C++对象模型[www.TopSage.com]

2011-09-15

聊天系统——客户端

手把手教你如何用C++开发属于自己的聊天软件,并有源代码参考额!

2011-09-15

聊天系统——服务器端

手把手教你如何用C++开发属于自己的聊天软件,并有源代码参考额!

2011-09-15

赫夫曼树编码及解码

严蔚敏数据结构教材中关于赫夫曼树的编码和解码操作实现,C语言

2013-11-23

广义表建树算法

严蔚敏数据结构教材中关于广义表建树的算法实现,C语言

2013-11-23

二叉树的基本操作及遍历

严蔚敏数据结构中关于二叉树的操作,C语言实现

2013-11-23

顶点间最短路径求解

严蔚敏数据结构教材中关于最短路径求解的C代码实现

2013-11-23

单链表的插入与删除

严蔚敏数据结构教材中关于单链表的操作的C代码实现

2013-11-23

串的堆分配

严蔚敏数据结构教材中关于串的堆分配的C语言实现

2013-11-23

数据结构中的栈操作

严蔚敏数据结构教材中关于栈操作的实现C代码

2013-11-23

出队与入队

严蔚敏数据结构教材中关于队列操作的C代码

2013-11-23

表达式求值

严蔚敏数据结构课程中关于表达式求值的C代码

2013-11-23

KMP中Next值求解

严蔚敏的数据结构中关于KMP算法中Next值求解的C代码

2013-11-23

空空如也

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

TA关注的人

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