- 博客(32)
- 收藏
- 关注
原创 探索字符串
低位优先算法会从右到左检查键(字符串)中的字符来完成字符串排序。这种算法适合用于键(字符串)的长度都相同的字符串排序,而且也是稳定的(依赖键索引计数法的实现)。
2023-11-29 22:08:12
893
原创 基本查找算法
1.基于符号表/索引表的查找算法符号表目的就是将一个键和一个值联系起来,是一种存储键值对的数据结构。1.1 基于二叉查找树实现的符号表/索引表 二叉查找树是将二分查找的效率和链表的灵活性结合起来,但依赖结点(键)的分布足够随机。具体是使每个结点含有两个链接的二叉查找树,每个结点只能有一个父结点(除了根节点),而且每个结点都只有左右两个链接,分别指向左子结点和右子结点。特点是左子结点小于根结点,根结点小于右子结点。public class BST
2023-11-09 23:36:34
52
原创 基本排序算法
1. 排序算法模板public abstract class SortTemplate { //排序算法,子类实现 public abstract void sort(Comparable[] a); //判断a是否小于b,小于0为true public static boolean less(Comparable a, Comparable b) { return a.compareTo(b) < 0; } //第i个和第j个交
2023-11-01 22:42:47
39
原创 算法基础篇
当且仅当 -( a[i] + a[j] ) 在数组中时,整数对( a[i] + a[j] )为某个和为 0 的三元组的一部分。③如果二分查找返回的下标索引 j 在 0 和 i 之间,则 a[i] + a[j] = 0,但是计数器已经加过了,数组实现的二分查找:输入模式是a[N],内循环是while循环中的所有语句,成本模式是。②如果二分查找返回的下标索引 j > i,则 a[i] + a[j] = 0,计数器加1;
2023-10-19 22:28:14
25
原创 JAVA三百篇
1、局部变量需要初始化才可以使用,它从属于方法或语句块。2、(常量)成员变量不初始化会默认赋予默认值,它从属于对象。3、静态变量不初始化会默认赋予默认值,它从属于类,并且被所有类共享。4、字节高到低需要强制转换,右高左低。5、字节低到高,在不超过低的,会自动转换,右低左高。6、this和surper():①this指当前对象。this()方法只能放在构造方法的第一行,来调用另一个构造方法。super()方法只能放在子类构造方法的第一行,来调用父类的构造方法。
2023-08-29 23:16:37
53
原创 设计模式之责任链模式
1)职责链模式(, 又叫 责任链模式,为请求创建了一个。这种模式对请求的发送者和接收者进行解耦。2)职责链模式通常用。如果一个对象不能处理该请求, 那么它会把相同的请求传给下一个接收者,依此类推。3)这种类型的设计模式属于。
2023-07-03 22:46:41
42
原创 设计模式之状态模式
1)状态模式():它主要用来。状态和行为是一一对应的,状态之间可以相互转换。2)当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。状态模式的原理-->UML类图:1) Context 类为环境角色, 用于维护State实例,这个实例定义当前状态。2) State 是抽象状态角色,定义一个接口封装与Context 的一个特点接口相关行为。3) ConcreteState 具体的状态角色,每个子类实现一个与Context 的一个状态相关行为。
2023-06-28 22:52:28
41
原创 设计模式之解释器模式
1)在编译原理中,一个算术表达式通过形成词法单元,而后这些词法单元再通过构建语法分析树,最终形成一颗抽象的语法分析树。这里的。2)解释器模式():是指给定一个语言表达式,定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式3)应用场景:•应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。•一些重复出现的问题可以用一种简单的语言来表达。•一个简单语法需要解释的场景。4)这样的例子还有,比如等。
2023-06-27 23:20:08
48
原创 设计模式之备忘录模式
1)备忘录模式()在不破坏封装性的前提下,。这样以后就可将该对象恢复到原先保 存的状态。2)可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情, 或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要。3)备忘录模式属于行为型模式。
2023-06-23 16:53:24
53
原创 设计模式之中介者模式
1)中介者模式(,用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其松耦合,而且可以独立地改变它们之间的交互。2)中介者模式属于行为型模式,使代码易于维护。3)比如MVC模式,CController控制器)是MModel模型)和VView视图)的中介者,在前后端交互时起到了中间人的作用。
2023-06-23 16:06:00
62
1
原创 设计模式之观察者模式
也称作,即观察与被观察的关系,比如你在烧开水时看它有没有开,你就是观察者,水就是被观察者。观察者模式是指监听某个对象的叫,被监听的对象叫。被观察者对象在内容或状态发生改变时,会通知所有观察者,使它们能自动更新自己的信息。观察者模式是。有的地方称作的发布-订阅模式模型-视图模式源-监听器模式从属者模式等。
2023-06-23 15:19:46
100
原创 设计模式之迭代器模式
1)迭代器模式()是常用的设计模式,属于2)如果我们的的,有数组,还有java的集合类,或者还有其他方式,当客户端要的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。3)迭代器模式,。
2023-06-18 00:32:02
47
原创 设计模式之访问者模式
封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。2)主要将数据结构与数据操作分离,解决和问题在被访问的类里面加一个对外提供接待访问者的接口需要对一个对象结构中的对象进行很多不同操作这些操作彼此没有关联,同时需要避免让这些操作污染这些对象的类,可以选用访问者模式解决。1) Visitor 是抽象访问者,为该对象结构中的ConcreteElement的每一个类声明一个visit操作。
2023-06-17 23:32:35
37
原创 设计模式之命令模式
1) 命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个, 我们只,此时,可以使用命令模式来进行设计。2) 命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。3) 在命名模式中,会,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。4) 通俗易懂的理解:将军发布命令,士兵去执行。
2023-06-17 22:38:05
109
原创 设计模式之模板方法模式
而将一些步骤延迟到子 类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。3) 这种类型的设计模式属于行为型模式。
2023-06-12 23:19:23
35
原创 设计模式之代理模式
1) 定义一个接口:ITeacherDao。2) 目标对象TeacherDAO实现接口ITeacherDAO。3) 使用静态代理方式,就需要在代理对象TeacherDAOProxy中也实现ITeacherDAO。4) 调用的时候通过调用代理对象的方法来调用目标对象。代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来 调用目标对象的方法。1) 代理对象,不需要实现接口,但是目标对象要实现接口,否则不能用动态代理。2) 代理对象的生成,是利用JDK的API,动态的在内存中构建代理对象。
2023-06-10 21:21:44
255
原创 设计模式之享元模式
1) 享元模式(Flyweight Pattern)也叫蝇量模式: 运用有效地支持大量细粒度的对象。2) 常用于系统。像,里面都是创建好的连接对象,在 这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个。3) 享元模式能够, 当系统中有大量相似对象,需要时。不用总是创建新对象,可以从缓冲池里拿。这样可以 降低系统内存,同时提高效率。
2023-06-10 20:32:12
81
原创 设计模式之组合模式
1) 组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结 构,将对象组合成树状结构以表示“整体-部分”的层次关系。2) 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。3) 这种类型的设计模式属于结构型模式。4) 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客 户以一致的方式处理个别对象以及组合对象。
2023-06-09 21:28:05
36
原创 设计模式之适配器模式
1)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。2)适配器模式属于结构型模式。3)主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。
2023-06-05 23:56:27
68
1
原创 设计模式之建造者模式
1) 建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以 将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方 法可以构造出不同表现(属性)的对象。2) 建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象 的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。1) Product(产品角色): 一个具体的产品对象。2) Builder(抽象建造者): 创建一个Product对象的各个部件指定的 接口/抽象类。
2023-06-04 23:16:27
34
1
原创 设计模式之原型(多例)模式
浅拷贝Java中Object类是所有类的根类,Object类提供了一个方法,该方法可以 将一个Java对象复制一份,但是需要实现clone的Java类必须要实现一个接口, 该接口表示该类能够复制且1) 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过这些原型,创建新的对象2) 原型模式是一种,允许一个对象再创建另外一个可定制的对象, 无需知道如何创建的细节3)
2023-06-04 22:33:16
170
1
原创 设计模式之工厂模式
1) 工厂模式的意义:将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的 依赖关系的解耦。从而提高项目的扩展和维护性。2) 三种工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式。3) 设计模式的创建对象实例时,不要直接 new 类, 而是把这个new 类的动作放在一个工厂的方法 中,并返回。有的书上说,变量不要直接持有具体类的引用。不要让类继承具体类,而是继承抽象类或者是实现interface(接口)。不要覆盖基类中已经实现的方法。
2023-06-04 02:36:37
68
1
原创 设计模式之UML类图
被类中使用、类的属性、类中方法的返回类型或参数。,是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。2)UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。3)使用UML来建模,常用的工具有Rational Rose , 也可以使用一些插件来建模。
2023-05-29 23:37:42
28
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人