自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AI梦想家

但行好事,自有前程

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

原创 原型模式、建造者模式、装饰器模式

原型模式必须让目标了实现Cloneable接口,该接口中没有任何方法,这样的接口仅仅为一个“标记接口”,作用是告诉Jvm,任何实现了Cloneable接口的类的对象都可以被克隆!必须写Java.lang.Object的clone方法,一定要把该方法的访问修饰符,重写为public!不然无法调用clone方法克隆方法不会引起构造调构造器!那么clone如何实现对象的clone?clone方法...

2020-04-13 11:31:45 288

原创 工厂设计模式

工厂设计模式:简单工厂、工厂方法、抽象工厂面向接口编程示意图:相关概念:产品、抽象产品、产品蔟、产品等级产品:类抽象产品:抽象类和接口产品蔟:多个有内在联系,或者是有关系的产品简单工厂:解耦了客户端与服务器代码//抽象产品interface Food{ public void eat();}//具体产品class Hamburger implements Food{...

2020-04-12 15:43:17 173

原创 设计模式:七大设计原则

绪论:设计模式是前辈们不断总结,不断打磨出的设计方法,不同设计模式适应于不同的场景设计模式,公认的有23种设计模式,不同的设计模式适用于不同的场景设计模式有优点,也有缺点不要为了使用设计模式而使用设计模式,切记防止“模式的滥用”23种设计模式,其背后是7大设计原则。也就是说,每一个设计模式都归于一个或多个设计原则7大设计原则的背后又是一个字,分。7大设计原则,分...

2020-04-11 11:06:58 162

原创 图的构建深度优先和广度优先

图结构1. 图的构建<pre>package GraphPackage;import java.util.Arrays;class Edge{ String beginCity; String endCity; int cost; public Edge(String beginCity, String endCity, int cost) { super()...

2020-02-21 14:57:06 140

原创 二叉树的前序中序后续遍历

二叉树的遍历遍历:按照某一种次序依次访问各个结点,每个结点恰好访问一次。二叉树前序遍历1.递归实现前序遍历<pre>public static void main(String[] args) { //设置结点之间的关系 BinNode root = new BinNode(0); BinNode node1 = new BinNode(1); BinNode no...

2020-01-13 17:27:13 106

原创 二叉树

二叉树二叉树结点的构建<pre>class BinNode{ public int data; public int height; public BinNode parent; public BinNode left; public BinNode right; public BinNode(int data) { super(); this.data = ...

2020-01-11 15:46:56 117

原创 栈--中缀表达式与逆波兰表达式

栈构造一个栈类<pre>class StackArray{ public int maxiSize; public int[] stack; public int top; public StackArray(int maxiSize) { //构造一个栈 this.top = -1; this.maxiSize = maxiSize; stack = n...

2020-01-10 20:46:23 189

原创 选择排序和插入排序

选择排序和插入排序选择排序选择排序:选择排序的思路是从一组元素中逐次选择最大的元素,放在无序元素末端,具体的实现过程如下图所示。因此选择排序需要存在以下几个接口:1.selectMax(p,n):从节点p开始,在节点p前n个节点中(不包括节点p)选择一个节点返回。<pre>public static ListNode selectMax(ListNode p, int n)...

2020-01-09 17:25:45 171

原创 无序链表和有序链表

链表–无序链表无序链表的相关接口寻秩访问–rank2data(head,rank),时间复杂度为O(rank),复杂度与rank成正比,以均匀分布为例,期望的时间复杂度为O(n),其中n为链表的长度<pre>public class LinkedList { public static void main(String[] args) { //创建一个链表node1...

2020-01-07 20:30:33 1376

原创 冒泡排序与归并排序

冒泡排序与归并排序冒泡排序方法一:思想是相邻元素逐个比较,然后将最大的放在后面。每遍历完一次,就会有一个元素就位,所以时间复杂度为O(n^2)<pre>public class LinearRecur { public static void main(String[] args) { int[] b = {7,6,10,9,12,15}; int low = 0...

2020-01-07 13:45:36 643

原创 二分查找与斐波那契查找

数据结构–查找二分查找方法一:轴点取中点,逐步递归。算法时间复杂度O(log[n])。主要思路如下图:<pre>public class LinearRecur { public static void main(String[] args) { int[] b = {2,6,6,9,10,10}; int low = 0; int high = b.len...

2020-01-06 22:37:16 411

原创 数据库系统相关概念

数据库系统定义:数据库:相互有关联关系的数据集合数据库管理系统:管理数据库的一种系统软件数据库语言:通过数据库语言开发数据库应用程序现实世界>>>>>信息世界>>>>>计算机世界由现实世界到信息世界:我们需要对数据进行建模(信息模型)由信息世界到计算机世界:我们需要进行数据库设计主要内容:数据库系统之–基本关系...

2020-01-05 17:17:22 221

原创 数组扩容--无序数组

数据结构数组扩容–如何对一个数组进行有效的扩容静态空间管理:开辟内部数组并适用一段地址连续的物理空间,capacity为总容量,size为当前的实际规模。若采用静态空间策略管理,容量capacity固定,则存在明显的不足。上溢:capacity空间不够,不足以存放所有元素下溢:capcity空间过大,存放的元素寥寥无几,装填因子(load factor) u=size/capacity ...

2020-01-05 14:07:52 257

原创 动态规划

动态规划问题一:斐波那契数列问题:斐波那契数列是指存在递推关系为:fib(n)=fib(n-1)+fib(n-2),且fib(0)=0,例如{0,1,1,2,3,5,8,13,…}就是一个斐波那契数列问题:给定n,求解对应的fib(n)迭代法一:<pre>public class LinearRecur { public static void main(String...

2020-01-04 22:40:53 144

原创 递归与迭代

数据结构第一部分:对于一个数组求和问题的两种思路减而治之: 时间复杂度:O(n) public class LinearRecur { public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7,8,9}; int length = array.length; int sum = 0;...

2020-01-04 15:04:01 125

空空如也

空空如也

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

TA关注的人

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