File tree Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Original file line number Diff line number Diff line change @@ -2534,6 +2534,11 @@ pub trait Itertools: Iterator {
25342534 /// arguments. For example if `f` combines arguments using `format!`, then `tree_reduce` will
25352535 /// operate on average on shorter arguments resulting in less bytes being allocated overall.
25362536 ///
2537+ /// Moreover, the output of `tree_reduce` is preferable to that of [`Iterator::reduce`] in
2538+ /// certain cases. For example, building a binary search tree using `tree_reduce` will result in
2539+ /// a balanced tree with height O(ln(n)), while [`Iterator::reduce`] will output a tree with
2540+ /// height O(n), essentially a linked list.
2541+ ///
25372542 /// If 'f' does not benefit from such a reordering, like `u32::wrapping_add`, prefer the
25382543 /// normal [`Iterator::reduce`] instead since it will most likely result in the generation of
25392544 /// simpler code because the compiler is able to optimize it.
You can’t perform that action at this time.
0 commit comments