python sortedcontainers-Python实现的快速排序算法集合

简介: python sortedcontainers-Python实现的快速排序算法集合。Python的标准库已经非常实用了,实践已经证明,即使没有一个扩展,您也可以真正走得很远。但是,当您真正需要排序列表、排序字典或排序集合时,您将面临许多不同的实现,其中大多数使用C扩展,而且没有完善的文档和基准测试。

介绍

Sorted Containers是Apache2许可的Sorted Collections库,用纯Python编写,并且可以像C扩展一样快速。

Python的标准库已经非常实用了,实践已经证明,即使没有一个扩展,您也可以真正走得很远。但是,当您真正需要排序列表、排序字典或排序集合时,您将面临许多不同的实现,其中大多数使用C扩展,而且没有完善的文档和基准测试。

在Python中,我们可以做得更好。我们可以用纯Python做到这一点!
1.jpg

上面显示的所有操作都比线性时间快。上面的演示还占用了将近1 GB的内存。当排序列表乘以一千万时,它将存储对“ a”到“ e”中的每一个的一千万个引用。每个引用在已排序的容器中需要八个字节。这是很难克服的,因为这是指向每个对象的指针的代价。与每个节点还必须存储两个指向子节点的指针的典型二叉树实现(例如,Red-Black Tree, AVL-Tree, AA-Tree, Splay-Tree, Treap等)相比,开销也减少了66%。

Sorted Containers将所有工作从Python分类集合中剔除-简化了Python的部署和使用。无需安装C编译器或预先构建和分发自定义扩展。性能是一项功能,测试具有100%的单元测试覆盖率和数小时的压力。

特点

  • 纯Python
    完善的文档

基准比较(替代方案,运行时,负载因子)
100%的测试覆盖率
压力测试时间
性能很重要(通常比C实现更快)
兼容的API(几乎与旧的blist和bintrees模块相同)
功能丰富(例如,按排序的字典获取五个最大的键:d.keys()[-5:])
实用的设计(例如SortedSet是具有SortedList索引的Python集)
在Python 3.7上开发
在CPython 2.7、3.2、3.3、3.4、3.5、3.6、3.7和PyPy,PyPy3上测试

快速开始

通过pip快速安装Sorted Containers:

$ pip install sortedcontainers

您也可以下载我们备份的网盘版库文件包:

download sortedcontainers

文档资料

有关sortedcontainers的完整文档,请访问 www.grantjenks.com/docs/sortedcontainers

相关文章
|
3月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
3月前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
162 5
|
3月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
211 4
|
4月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
242 26
|
4月前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
483 2
|
4月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
290 0
|
4月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
400 0
|
4月前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
481 4
|
4月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
691 4
|
4月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
307 3

推荐镜像

更多