ufx是一个纯python库,它实现了允许union-find操作的不相交集数据结构。

UFx的Python项目详细描述


ufx是一个纯python库,它实现了disjoint-set data structure 允许联合查找操作。

提出了两种实现方案。 Java内容

  • uf_hash使用python字典
  • uf_tree使用链接到每个anstror的节点

这些实现是为散列类型设计的。不管怎样 可以使用^{tt2}中存在的UFNode类$ 使用非哈希类型的实现(请参阅api文档部分 下面)。

ufx仅用python 2.7python 3.5pypypy测试,但可能 使用其他版本的python虚拟机。

性能

uf_hash实现是推荐的。它表现得很好 使用经典的python虚拟机。uf_tree实现 很慢,因为python的指针式性能很差 基于数据结构。使用另一个python虚拟机 pypy建议在使用uf_tree实现时使用它。

todo:计算速度和内存消耗表

API文档

导入

可以导入不相交集数据的一个实现 结构

from ufx import uf_tree as ufx

from ufx import uf_hash as ufx

快速示例

import sys
import random
uf = ufx.UnionFind()
az = "abcdefghijklmnopqrstuvwxyz"
az += az.upper()
for e in az:
    uf.make_set(e)
i = 0
while i < 26:
    i += 1
    uf.union(random.choice(az), random.choice(az))
print(uf)
print(uf.get_size('a'))
uf.clear()
print(uf)

散列类型

待办事项

非哈希类型

看看这个类UFNode

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaFireStore:如何从外部voidOnComplete方法读取数据   java在Liferay 6.2中,保存按钮在站点设置中不起作用   javaxe:restService调用bean需要28秒   java如何完全限定包名与本地成员名冲突的类?   无法使用带Java的Selenium WebDriver滚动特定DIV   java在运行时没有输出。jar被执行   java我们的setter中的ifstatement有问题   java如何将Eclipse的自动插入分号移动到光标之前?   java JTextArea在setEditable为false时显示插入符号   java为什么Akka让所有这些线程都停下来?   您是否必须更改EclipseVE生成的Java Swing代码以获得正确的程序?   需要基本java equals()覆盖帮助   JavaTiles 3:在JSP中获取当前定义名称   在默认构造函数之前执行的Java方法   java使用Excel模板和ApachePOI   活动和主活动之间的java差异。xml和fragment_main_dummy。xml?   java在表单的选择框部分显示arraylist   java在使用contentdisposition:attachment时,我们如何从用户那里获取文件名   Eclipse中的java Get codechanges(live)   java如何替换字符串中的“x”并将其等同于一个数字?