栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python中内置的二进制搜索树?[关闭]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中内置的二进制搜索树?[关闭]

有没有特殊的原因,据我所知-
我猜的原因是,如此多的应用的高度调整

dict
set
实现(这是哈希表)工作做好。在大多数情况下,它们足够好。在某些情况下,您确实需要平衡的二进制搜索树的性能特征(例如,基于键而不是加序的有序遍历),但这些条件已经远远超出了人们通常会抓住第三方软件包的范围在这种情况下。

我在PyPI上使用bintrees包有很好的经验。这在纯Python中以及作为用Cython编写的扩展都具有不平衡的AVL和红黑二进制树的实现。

我认为其余原因本质上是历史事故。如果编写二叉树的人游说将其包含在stdlib中,并且愿意忍受维护和发布所施加的约束,那么它可能会加入进来。(尽管Cython依赖会导致问题,我猜)

算法复杂度:

对于哈希表(如字典或集合),插入和查找为O(1),而对于平衡树,则为O(log(n))。键的有序遍历是树中的O(n),但是要对哈希表执行相同的操作,您需要先对键进行排序,所以它是O(n* log(n))。在选择要使用哪种数据结构时,您需要考虑将要使用的操作,并选择在应用程序中最有意义的折衷方案。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668271.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号