Java中基于数组实现的队列,其peek()方法的时间复杂度是多少?
数组实现队列的peek()方法时间复杂度分析
你说得完全正确,用数组实现队列时,peek()方法的时间复杂度确实是O(1)。
数组属于支持随机访问的数据结构,在实现队列时我们通常会维护一个队头指针(比如用变量记录队头对应的数组下标),peek()方法的逻辑仅仅是返回该下标指向的数组元素,不需要遍历队列中的任何元素,也不存在循环、递归这类会随数据量增长而增加操作次数的逻辑,因此它的时间复杂度是常数级的O(1)。
举个简单的伪代码示例:
class ArrayQueue { private int[] arr; private int front; // 记录队头下标 public int peek() { if (isEmpty()) { throw new NoSuchElementException(); } return arr[front]; // 直接访问数组元素,O(1)操作 } // 辅助的isEmpty方法 private boolean isEmpty() { // 此处省略判断逻辑 return false; } }
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

