首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >像图、树等数据结构是如何获得它们的时间复杂性和行为的,即使它们是使用列表/数组实现的?

像图、树等数据结构是如何获得它们的时间复杂性和行为的,即使它们是使用列表/数组实现的?
EN

Stack Overflow用户
提问于 2018-01-26 06:04:07
回答 1查看 32关注 0票数 0

这些数据结构的行为和属性不影响像图、二叉树、链表等“高级”数据结构的行为吗?例如:数组的访问是O(1),那么这个属性在二叉树O (log n)的时间复杂度中有什么影响或因素?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-26 06:28:31

O(1)是通过数组索引访问数组元素的时间复杂性.

可以使用数组作为二叉树的后备存储。这确实会为最终按索引执行数组访问的操作提供O(1)的时间复杂性,但对其他事情则不然。

例如,您可以在O(1)中获取树的根元素--这只是从0位置的数组中检索它。

但是,如果您想找出树中是否存在一个元素,这可以归结为(一种特殊形式的)二进制搜索,即O(log n)

还请注意,并不是数组上的每个操作都是O(1)。二进制搜索是O(log n),这假定数组是排序的。如果不是,则需要进行线性搜索,即O(n)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48456461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档