数据结构如图形,树木等如何使用列表/数组实现时间复杂性和行为?

时间:2018-01-26 06:04:08

标签: arrays data-structures graph tree time-complexity

这些数据结构的行为和属性是否会影响“更高”数据结构(如图形,二叉树,链表等)的行为? 例如:数组的访问权限是O(1)那么这个属性如何影响二进制树O (log n)的时间复杂度或者因素呢?

1 个答案:

答案 0 :(得分:1)

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

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

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

但是如果你想知道树中是否存在一个元素,这归结为(一种特殊形式的)二元搜索,即O(log n)

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