diff options
| author | Johannes Oertel <johannes.oertel@uni-due.de> | 2016-03-24 15:39:46 +0100 |
|---|---|---|
| committer | Johannes Oertel <johannes.oertel@uni-due.de> | 2016-04-22 12:30:43 +0200 |
| commit | 241a3e4689d3004daf9e1d36cec2235cbd301fbf (patch) | |
| tree | 2271c120af812b64ca3beab24c2c19ce98f53398 /src/libstd | |
| parent | 887e9471783ff3f5edc920a85b6110486dc063c0 (diff) | |
| download | rust-241a3e4689d3004daf9e1d36cec2235cbd301fbf.tar.gz rust-241a3e4689d3004daf9e1d36cec2235cbd301fbf.zip | |
Implement `append` for b-trees.
The algorithm implemented here is linear in the size of the two b-trees. It firsts creates a `MergeIter` from the two b-trees and then builds a new b-tree by pushing key-value pairs from the `MergeIter` into nodes at the right heights. Three functions for stealing have been added to the implementation of `Handle` as well as a getter for the height of a `NodeRef`. The docs have been updated with performance information about `BTreeMap::append` and the remark about B has been removed now that it is the same for all instances of `BTreeMap`.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/collections/mod.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libstd/collections/mod.rs b/src/libstd/collections/mod.rs index 4de442fd3a1..44613d77671 100644 --- a/src/libstd/collections/mod.rs +++ b/src/libstd/collections/mod.rs @@ -120,12 +120,10 @@ //! //! For Sets, all operations have the cost of the equivalent Map operation. //! -//! | | get | insert | remove | predecessor | -//! |----------|-----------|----------|----------|-------------| -//! | HashMap | O(1)~ | O(1)~* | O(1)~ | N/A | -//! | BTreeMap | O(log n) | O(log n) | O(log n) | O(log n) | -//! -//! Note that BTreeMap's precise performance depends on the value of B. +//! | | get | insert | remove | predecessor | append | +//! |----------|-----------|----------|----------|-------------|--------| +//! | HashMap | O(1)~ | O(1)~* | O(1)~ | N/A | N/A | +//! | BTreeMap | O(log n) | O(log n) | O(log n) | O(log n) | O(n+m) | //! //! # Correct and Efficient Usage of Collections //! |
