当前位置: 代码迷 >> 综合
 解决方案列表
  • [综合] Jalangi2 中文API

    MyAnalysis /user/ksen/Dropbox/jalangi2/src/js/运行/analysisCallbackTemplate。js,第101行 这个文件是编写定制的Jalangi2分析的模板。简单地复制这个文件并重新编写您需要在分析中实现的回调。其他回调应该从文件中删除。 在以...

    109
    热度
  • [综合] 设计模式----装饰者模式

    装饰者模式: 动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 新的包装类肯定要持有原有基类的句柄,然后覆盖超类中的方法。我们把被包装的类传入包装类,新的包装类就可以调用被包装类的方法并在此基础上做出改动。因为面向对象语言的上溯造型,在需要被包装类的地方完全可以提供包装...

    98
    热度
  • [综合] 设计模式----工厂方法模式

    工厂方法模式: 定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到了子类。 工厂方法模式结构: 工厂方法模式一般有四个部分:抽象产品类、具体产品类、抽象工厂类、具体工厂类。 抽象产品类:负责定义产品的共性,实现对事物最抽象的定义; 具体产品类:继承抽象产品类,定...

    22
    热度
  • [综合] 设计模式----抽象工厂模式

    上一篇----工厂方法模式 抽象工厂模式: 提供一个接口,用来创建相关或依赖对象的家族,而不需要明确指定具体类。 抽象工厂模式是工厂方法模式的升级版本。如果我们要实现的系统有N个产品族,每个产品族有M种产品,那么就可以使用抽象工厂模式。抽象工厂模式的结构可以分为: 抽象产品类/接口:定义每个产品族...

    29
    热度
  • [综合] 设计模式----适配器模式

    适配器模式: 将一个类的接口,转化成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 适配器模式的结构: 适配器模式一般有三个部分:目标类/接口、被适配的对象、适配器类。 目标类/接口:我们想要使用的接口。 被适配的对象:已经存在的对象。这个对象和目标接口不兼容,但我们想能够想调用目...

    49
    热度
  • [综合] 设计模式----外观模式

    外观模式: 提供了一个统一接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 设计原则--“最少知识”原则,减少对象之间的交互。 有时候我们完成一件事,是有一套完整的动作的,我们可以把这些动作封装到一个类里面,可以让子系统更加好用。比如我们小时候玩小霸王游戏机,我们要:打...

    96
    热度
  • [综合] 设计模式----模板方法模式

    模板方法模式: 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使子类在不改变算法结构的情况下,重新定义算法中的某些步骤。 模板方法模式的结构: 抽象类:实现了模板方法,定义了算法的骨架。 具体类:实现抽象类中的抽象方法,已完成完整的算法。 这个模式是用来创建一个算法的模板。这...

    47
    热度
  • [综合] 设计模式----迭代器模式

    迭代器模式: 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部表现。 示例:餐厅和煎饼屋合并后,需要遍历菜单时,由于餐厅菜单使用的是数组,而煎饼屋使用的是ArrayList,怎么才能统一地用一种方法来遍历呢? 由于Java内置对迭代器的支持,我们利用javautil.Iterator包...

    17
    热度
  • [综合] 设计模式----状态模式

    状态模式: 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 状态模式的结构: 环境(Context)角色,也称上下文:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个具体状态类的实例给出此环境对象的现有状态。 抽象状态(State)角色:定义一个接口,用以封装环境(...

    52
    热度
  • [综合] 归并、快排和堆排算法

    *代码的实现基于算法排序模板方法 1归并排序 特点: (优点):能够保证将任意长度为N的数组排序所需时间和NlogN成正比。 (缺点):所需额外空间与N成正比。 归并排序是算法设计中分治思想的典型应用。 原地归并方法: publicstaticvoidmerge(Comparable[]a...

    59
    热度
  • [综合] 删数算法

    本实验符合贪心法原则,使用贪心算法实现。 贪心法的核心是贪心策略的选择。在本题中,要求最后结果最小,则要保证每次删除的数都能确保局部最小。故我们将贪心策略定义为:从高位向低位遍历,若前一位大于后一位,则删去前一位。 删数伪代码如下: for(inti=0;i<str.length();i++)...

    59
    热度
  • [综合] Dijkstra双栈表达式求值算法

    以表达式"(1+((2+3)*(4*5)))"为例: 算法分四个步骤: 将操作数压入操作数栈 将运算符压入运算符栈 忽略左括号 在遇到右括号时,弹出一个运算符并弹出所需数量的操作数,运算结果并将结果压入操作数栈 处理完最后一个右括号后,操作数栈中只剩下一个数,就是表达式的值。 publiccla...

    79
    热度
  • [综合] 编译原理--词法分析程序

    1算法思想 程序分为4个关键方法,用户输入方法,读、写文件方法以及词法分析方法。其中词法分析方法是程序的核心。 词法分析程序主要分为两个部分,第一是取词,第二是分析。 1.1取词阶段 依次取字符串的每一个字符,遇到空字符时停下,将取到的字符合并成一个字符串,送去进行分析阶段。 1.2分析阶段 程...

    80
    热度
  • [综合] 散列表查找算法--链地址法和线性探查法

    散列表查找算法 步骤: 用散列函数将被查找的键转化成数组索引 处理碰撞冲突 有两种常见的碰撞处理的方法,分别是链地址法和线性探测法。 1链地址法 链地址法:将大小为M的数组中的每个元素指向一条结点类型的链表,链表中保存散列值为该元素的索引的键值对。 在一张含有M条链表和N个键的散列表中,未命...

    82
    热度
  • [综合] 无向图问题--深度、广度优先遍历

    无向图概念 术语表: 多重图:将含有平行边的图称为多重图。 简单图:将没有平行边和自环的图称为简单图。 相邻:当两个顶点通过一条边相连时,称这两个顶点相邻,并称这条边依附于这两个顶点。 度数:一个顶点的度数即依附于它的边的总数。 简单路径:是一条没有重复顶点的路径。 简单环:是一条(除了起点和终...

    88
    热度
  • [综合] 加权无向图问题--最小代价生成树(Prim算法、kruskal算法)

    加权无向图的实现 加权无向图的实现最简单的方法是扩展无向图的表示方法:在邻接表的表示中,可以在链表的结点中增加一个权重域。但这里用另一个方法来实现:我们实现两个类,权重边类和无向图类。无向图类中组合权重边类来实现加权无向图。 权重边类: publicclassEdgeimplementsCompa...

    72
    热度
  • [综合] 加权有向图问题1--单源最短路径问题(Dijkstra算法和Bellman - Ford算法)

    加权有向图实现 我们实现两个类,权重边类和有向图类。有向图类中组合权重边类来实现加权有向图。 权重边类实现: publicclassDirectedEdge{privateintv;privateintw;privatedoubleweight;publicDirectedEdge(intv,in...

    76
    热度
  • [综合] 加权有向图问题2----多源最短路径问题(Floyd算法)和关键路径算法

    Floyd算法 Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法。 Floyd算法能够处理带负权重的边的有向图但不能包含负权重环。 算法思想: 从起始顶点开始,依次加入一个顶点,每加入一个顶点,更新一下各条最短路径长度。各条最短路径长度保存在一个二位数...

    110
    热度
  • [综合] 字符串查找算法--R向单词查找树和三向单词查找树

    字符串查找算法分析 算法对比: 算法(数据结构) 优点 二叉查找树(BST) 适用于随机排列的键 2-3树查找(红黑树) 有性能保证 线性探测法(并行数组) 内置类型,缓存散列值 R向单词查找树 适用于较短键和较小的字母表 三向单词查找树 适用于非随机的键 如果空间...

    34
    热度
  • [综合] 子字符串查找算法----暴力算法、KMP算法、Boyer-Moore算法和Rabin-Karp算法

    各种算法比较 优缺点: 优点: 暴力查找算法:实现简单且在一般情况下工作良好(Java的String类型的indexOf()方法就是采用暴力子字符串查找算法); Knuth-Morris-Pratt算法能够保证线性级别的性能且不需要在正文中回退; Boyer-Moore算法的性能一般情况下都是亚...

    35
    热度