跳转到主要内容

一个纯Python跳表。

项目描述

一个纯Python跳表实现。

跳表提供了一个可快速搜索的结构(类似于平衡二叉树),同时更新成本也相当低(无需进行繁琐的平衡操作)。换句话说,它真的很棒。

有关更多信息,请参阅http://en.wikipedia.org/wiki/Skip_list

这主要是我自己的练习,结果发现跳表非常有用。此外,它还附带了一个(主要未经文档记录的)链表实现(+一个排序变体),如果这有用的话。

需求

  • Python 3.3+(应能在Python 2.6+以及PyPy 2.0+上运行)

  • nose>=1.30 用于运行unittests

用法

使用方法如下

>>> import skiplist
>>> skip = skiplist.Skiplist()
>>> len(skip)
0
>>> 6 in skip
False
>>> skip.insert(0)
>>> skip.insert(7)
>>> skip.insert(3)
>>> skip.insert(6)
>>> skip.insert(245)
>>> len(skip)
5
>>> 6 in skip
True
>>> skip.remove(245)
>>> len(skip)
4
>>> skip.find(3)
<Skiplist: 3>

性能

性能尚可,尽管我相信还有改进的空间。有关更多信息,请参阅bench.py脚本。

运行测试

运行pip install nose(最好在虚拟环境中进行)以安装nose。

然后运行nosetests -s -v tests.py以运行完整的测试套件。

待办事项

  • 更高效的remove实现(仍然是O(N))

  • 更多的性能测试

    • 加载数据似乎很慢

元数据

作者:

Daniel Lindsley

许可证:

BSD

版本:

0.9.0

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

pyskip-0.9.0.tar.gz (5.2 kB 查看哈希值)

上传时间 源代码

构建分发

pyskip-0.9.0-py2.py3-none-any.whl (6.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持