自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bin-mu的专栏

努力奔跑的人运气都不会差!

  • 博客(15)
  • 收藏
  • 关注

原创 疯狂九大排序及其详解

排序算法是我们最常用的算法,之前听牛客大牛左大神讲解后自己详细的整理了一遍,感觉比以前学的深刻很多。下面共享给大家九大经典排序算法是面试必备的算法知识。九大算法可以根据时间复杂度、空间复杂度、稳定性有不同的划分。本文先基于时间复杂度对九类经典排序算法进行简要介绍和其代码实现。其中会夹杂稳定性和空间复杂度分析。首先介绍时间复杂度为。其中包括冒泡排序、选择排序、插入排序(1)、冒泡排序

2016-10-13 15:54:55 892

原创 适配器和外观模式

适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间适配器模式在我们显示生活中很常见。比如你在Hong Kong买了个Iphone6手机,你会发现它的标配送的充电器居然是三孔大的充电接口,但是内地没有这种借口的啊。这时候你就需要适配器将这种借口进行转换,转换为能接受的接口适配器可以将一个接口转换成另一个接口,以符合客户的期望适配器实

2016-07-30 10:51:46 339

原创 二叉查找树(二叉排序树)BST解析

二叉排序树又名二叉查找树,不同于普通的二叉树,该形式可以使二叉树有序,使其左孩子一定小于该节点值,右孩子一定大于该节点值,于是其中序遍历便是一个递增的数列。同时故其查找效率为O(lgN)即二叉树的高度。下面首先介绍下BST树的查找算法。BST树查找很简单,首先根节点,如果比该节点值大从其右孩子中查找,如果比其小则从其左孩子中查找。直到找到或者该节点为空为止。下面是查找的代码

2016-07-29 16:36:21 1074

原创 命令模式

在我们编程应用中或者生活之中。我们希望用一个统一的遥控器,这个遥控器可以对家电进行统一的off和on操作,但是这些遥控器却不需要知道这些家电自动化的细节。命令模式可以将“动作的请求者”从“动作的执行者”对象中解耦。请求者为遥控器,执行者为家电。做法是把请求封装成一个特定的对象(如电灯对象)。所以如果对每个按钮都存储一个命令对象,那么当按下按钮的时候,就可以请命令对象做相关的工作。遥控器并不

2016-07-29 10:57:56 323

原创 单例模式

单例模式的引入。在我们的系统开发之中。我们会有一些对象其实是我们只需要一个。比如:线程池,注册表,缓存等。事实上这些对象只能有一个实例,如果制造出多个实例,就会导致诸多问题如程序行为异常、资源使用过量首先最简单的单例的实现,我们可以通过将构造器私有化来限制对象的创建,同时提供统一的访问点。下面是代码实现:public class Singleton { private Single

2016-07-28 08:22:23 218

原创 工厂方法模式

前一章写了工厂模式,该模式将创建与对象本身业务处理分离了,可以降低系统的耦合度,使得两者修改起来都相对容易些。当以后实现改变时,只需要修改工厂类即可。但是这种工厂模式,提供的创建都是单一的创建,比如pizza那个例子,如果每个pizza店想创建自己风格的pizza的话,那么工厂模式便无法提供这种改变。难道我们要创建不同风格的pizza工厂?这显然不对。这样会使类增多,系统更复杂。工厂方法模

2016-07-27 09:58:03 266

原创 工厂模式

设计模式原则之中有一点是不应该针对实现编程,但是每次new的时候实际就是针对实现编程。针对实现编程会带来很多问题,会使代码更脆弱,缺乏弹性。如Person p;if(sex="男人") p=new Man();else p=new Woman();如果改天我们想再加一个小孩呢?这就需要对这段代码重新修改。这样的修改很容易犯错,造成系统的局部更新维护。好的代码都是对扩展开发对修

2016-07-27 09:46:00 258

原创 KMP字符串匹配算法解析

kmp算法为非常经典的字符串匹配算法。下面先讲解下最原始的字符串匹配方法,也就是暴力求解。时间复杂度为O(m*n)下面举个例子讲解下暴力大法如  12314123123b   match为123123首先从第一个位置str[0]开始依次与match开始进行比较str的第0、1、2、3与match 0、1、2、3匹配,但是4与match[3]不匹配,即str[0]位置出发不与matc

2016-07-26 09:07:02 1563

原创 观察者模式

观察者模式是非常实用的一种设计模式。他可以降低对象之间的耦合度,实现松耦合。比如我们编程中,如果你的一个对象获得了一个数据,他要将这个数据通知很多别的对象,让那些对象实现数据的更新。最简单的方法如下:T1 t1=new T1();T2 t2=new T2();T3 t3=new T3();t2.update(info);t1.update(info);t3.update(in

2016-07-22 17:00:30 279

原创 NYOJ35-表达式求值(逆波兰式)java

表达式求值描述ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小数)输入第一行输入一个整数n,共有n组测试数据(n每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式

2016-05-23 18:52:50 2477

原创 分类找单词集的变位词集java

题目:给定一本英语单词词典,请找出所有的变位词集。例如,因为“pots”, “stop”,“tops”相互之间都是由另一个词的各个字母改变序列而构成的, 因此这些词相互之间就是变位词。String str[]={"fsda","stop","sdfa","asdf","tops","post","hello","llohe","lolhe","world","ptso","dlrow"};

2016-04-04 09:00:34 731

原创 后缀求可重叠最长重复子串

假设我们有这样的字符串及数组:String str="banana";boolean flag[]=new boolean[str.length];flag为后缀数组,用于标记子串位置for(int i=0;i<str.length;i++) flag[i]=i;后缀:从某个位置i开始到整个串末尾结束的一个特殊子串flag[i]指向字符串第i个位置起始的子串

2016-04-03 20:32:26 614

原创 Maven新建项目报错

报错:Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.mave

2016-04-01 15:06:53 1510

原创 java设计模式——装饰者模式浅析

帮同学做试卷发现有个编程题居然让用Decorator来写,以前只接触过简单的设计模式,现在有时间准备好好认真学习一下设计模式。如果你只会code那么你永远都只是code,如果你会设计模式和算法那么你绝不单单只能做code。 装饰设计模式简单的说来就是为了动态的增加已有类的功能。有些人也许会说增加已有类的功能那么继承该类重写或者添加方法不就行了吗?但是这样只会让程序更加的臃肿,如果要增加的功

2015-12-20 17:46:03 558

原创 JAVA中子窗口关闭,父窗口也关闭的问题

在编程之中,碰见的一个问题,感觉很简单,但是却由于那点知识的欠缺才会出错。我碰见的有两种情况子窗口关闭导致父窗口也关闭!下面简单介绍一下。。一种是常规的,java原装类库引起的最常见的:import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton

2015-04-04 08:00:15 5726 1

空空如也

空空如也

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

TA关注的人

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