From 0212dff902da3d50123b6dc02fa0da250ddc0da4 Mon Sep 17 00:00:00 2001 From: Jim Apple Date: Mon, 1 Dec 2014 18:12:48 -0800 Subject: [PATCH] Pop on binary heaps does not have constant time complexity. pop calls siftdown, siftdown calls siftdown_range, and siftdown_range loops on an index that can start as low as 0 and approximately doubles each iteration. --- src/libcollections/binary_heap.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcollections/binary_heap.rs b/src/libcollections/binary_heap.rs index cbf45ee36a3d..330b93929746 100644 --- a/src/libcollections/binary_heap.rs +++ b/src/libcollections/binary_heap.rs @@ -10,8 +10,8 @@ //! A priority queue implemented with a binary heap. //! -//! Insertions have `O(log n)` time complexity and checking or popping the largest element is -//! `O(1)`. Converting a vector to a priority queue can be done in-place, and has `O(n)` +//! Insertion and popping the largest element have `O(log n)` time complexity. Checking the largest +//! element is `O(1)`. Converting a vector to a priority queue can be done in-place, and has `O(n)` //! complexity. A priority queue can also be converted to a sorted vector in-place, allowing it to //! be used for an `O(n log n)` in-place heapsort. //!