diff options
| author | Stjepan Glavina <stjepang@gmail.com> | 2017-07-20 22:00:16 +0200 |
|---|---|---|
| committer | Stjepan Glavina <stjepang@gmail.com> | 2017-07-21 00:58:16 +0200 |
| commit | 9a510553ee7657ac0dfcbad81e0b1df4953005e4 (patch) | |
| tree | af2d5d9bf1509a3731a312b650a7713825a1f95d /src/liballoc | |
| parent | ae98ebfcb9ad5a5384fd229a6ee91315b02ca969 (diff) | |
| download | rust-9a510553ee7657ac0dfcbad81e0b1df4953005e4.tar.gz rust-9a510553ee7657ac0dfcbad81e0b1df4953005e4.zip | |
Clarify that sort_unstable is deterministic
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/slice.rs | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/liballoc/slice.rs b/src/liballoc/slice.rs index f4c2b9d054b..ec7a2b6d0e8 100644 --- a/src/liballoc/slice.rs +++ b/src/liballoc/slice.rs @@ -1252,12 +1252,13 @@ impl<T> [T] { /// /// # Current implementation /// - /// The current algorithm is based on Orson Peters' [pattern-defeating quicksort][pdqsort], - /// which is a quicksort variant designed to be very fast on certain kinds of patterns, - /// sometimes achieving linear time. It is randomized but deterministic, and falls back to - /// heapsort on degenerate inputs. + /// The current algorithm is based on [pattern-defeating quicksort][pdqsort] by Orson Peters, + /// which combines the fast average case of randomized quicksort with the fast worst case of + /// heapsort, while achieving linear time on slices with certain patterns. It uses some + /// randomization to avoid degenerate cases, but with a fixed seed to always provide + /// deterministic behavior. /// - /// It is generally faster than stable sorting, except in a few special cases, e.g. when the + /// It is typically faster than stable sorting, except in a few special cases, e.g. when the /// slice consists of several concatenated sorted sequences. /// /// # Examples @@ -1286,12 +1287,13 @@ impl<T> [T] { /// /// # Current implementation /// - /// The current algorithm is based on Orson Peters' [pattern-defeating quicksort][pdqsort], - /// which is a quicksort variant designed to be very fast on certain kinds of patterns, - /// sometimes achieving linear time. It is randomized but deterministic, and falls back to - /// heapsort on degenerate inputs. + /// The current algorithm is based on [pattern-defeating quicksort][pdqsort] by Orson Peters, + /// which combines the fast average case of randomized quicksort with the fast worst case of + /// heapsort, while achieving linear time on slices with certain patterns. It uses some + /// randomization to avoid degenerate cases, but with a fixed seed to always provide + /// deterministic behavior. /// - /// It is generally faster than stable sorting, except in a few special cases, e.g. when the + /// It is typically faster than stable sorting, except in a few special cases, e.g. when the /// slice consists of several concatenated sorted sequences. /// /// # Examples @@ -1323,12 +1325,13 @@ impl<T> [T] { /// /// # Current implementation /// - /// The current algorithm is based on Orson Peters' [pattern-defeating quicksort][pdqsort], - /// which is a quicksort variant designed to be very fast on certain kinds of patterns, - /// sometimes achieving linear time. It is randomized but deterministic, and falls back to - /// heapsort on degenerate inputs. + /// The current algorithm is based on [pattern-defeating quicksort][pdqsort] by Orson Peters, + /// which combines the fast average case of randomized quicksort with the fast worst case of + /// heapsort, while achieving linear time on slices with certain patterns. It uses some + /// randomization to avoid degenerate cases, but with a fixed seed to always provide + /// deterministic behavior. /// - /// It is generally faster than stable sorting, except in a few special cases, e.g. when the + /// It is typically faster than stable sorting, except in a few special cases, e.g. when the /// slice consists of several concatenated sorted sequences. /// /// # Examples |
