File tree 1 file changed +5
-0
lines changed
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 {
2534
2534
/// arguments. For example if `f` combines arguments using `format!`, then `tree_reduce` will
2535
2535
/// operate on average on shorter arguments resulting in less bytes being allocated overall.
2536
2536
///
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
+ ///
2537
2542
/// If 'f' does not benefit from such a reordering, like `u32::wrapping_add`, prefer the
2538
2543
/// normal [`Iterator::reduce`] instead since it will most likely result in the generation of
2539
2544
/// simpler code because the compiler is able to optimize it.
You can’t perform that action at this time.
0 commit comments