这些数据结构的行为和属性是否会影响“更高”数据结构(如图形,二叉树,链表等)的行为?
例如:数组的访问权限是O(1)
那么这个属性如何影响二进制树O (log n)
的时间复杂度或者因素呢?
答案 0 :(得分:1)
O(1)
是通过索引访问数组元素的时间复杂度。
您可以使用数组作为二叉树的后备存储。这确实会为最终通过索引进行数组访问的操作提供O(1)
时间复杂度,但不会为其他事情提供。
例如,您可以在O(1)
中获取树的根元素 - 这只是从位置0的数组中检索它。
但是如果你想知道树中是否存在一个元素,这归结为(一种特殊形式的)二元搜索,即O(log n)
另请注意,并非阵列上的每个操作都是O(1)
。二进制搜索是O(log n)
,并且假定数组已排序。如果不是,则需要进行线性搜索,即O(n)
。