<分区>
array = ["A", "B", "C", "D"]
对于给定的数组,它需要 O(1)
才能指向第一个索引 0。因此,如果我键入 array[0]
,它需要 O(1)
指向"A"
。但是,如果我编写指向最后一个索引 3 的 array[-1]
。它是遍历整个数组以获得最后一个索引,还是知道数组默认以索引 3 结束?
也就是说array[-1]在python中是如何实现的?
<分区>
array = ["A", "B", "C", "D"]
对于给定的数组,它需要 O(1)
才能指向第一个索引 0。因此,如果我键入 array[0]
,它需要 O(1)
指向"A"
。但是,如果我编写指向最后一个索引 3 的 array[-1]
。它是遍历整个数组以获得最后一个索引,还是知道数组默认以索引 3 结束?
也就是说array[-1]在python中是如何实现的?
最佳答案
访问任何数组元素都是在常数时间内,因为它是已知的内存位置(即指针。)
数组不需要通过先前的元素来访问第 n 个元素(即它不像链表。)所有元素的位置都是事先已知的,可以直接访问。
更新感谢评论。
array[-x]
是 array[len(lst) - x]
的语法糖。所以它仍然是对指针的简单常量访问,不需要时间。
You can see this answer for a bit more info. While it is about C, the concepts should be the same.
关于python - 获取数组的最后一个索引的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54432475/