一个纯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 查看哈希值)