⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fastdisjointset.java

📁 Standord Classifier实现了一个基于Java的最大熵分类器。用于模式识别
💻 JAVA
字号:
package edu.stanford.nlp.util;import java.util.*;/** *  Fast Disjoint Set * *  Disjoint forest with path compression and union-by-rank.  The set *  is unmodifiable except by unions. * *  @author Dan Klein *  @version 4/17/01 */public class FastDisjointSet implements DisjointSet {  class Element {    Element parent;    int rank;    Object object;    Element(Object o) {      object = o;      rank = 0;      parent = this;    }  }  Map objectToElement;  private void linkElements(Element e, Element f) {    if (e.rank > f.rank) {      f.parent = e;    } else {      e.parent = f;      if (e.rank == f.rank)	f.rank++;    }  }  private Element findElement(Element e) {    if (e.parent == e)      return e;    Element rep = findElement(e.parent);    e.parent = rep;    return rep;  }  public Object find(Object o) {    Element e = (Element)objectToElement.get(o);    if (e == null)      return null;    Element element = findElement(e);    return element.object;  }  public void union(Object a, Object b) {    Element e = (Element)objectToElement.get(a);    Element f = (Element)objectToElement.get(b);    if (e == null || f == null)      return;    if (e == f)      return;    linkElements(findElement(e), findElement(f));  }  public FastDisjointSet(Set objectSet) {    objectToElement = new HashMap();    for (Iterator i = objectSet.iterator(); i.hasNext();) {      // create an element      Object o = i.next();      Element e = new Element(o);      objectToElement.put(o, e);    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -