Made slice sort documentation consistent between stable and unstable versions

This commit is contained in:
Ryan Scott 2020-10-14 16:50:00 +11:00 committed by Ryan Scott
parent 1fe9b7f3fe
commit 000ec5e2f8
2 changed files with 10 additions and 10 deletions

View File

@ -169,7 +169,7 @@ mod hack {
impl<T> [T] { impl<T> [T] {
/// Sorts the slice. /// Sorts the slice.
/// ///
/// This sort is stable (i.e., does not reorder equal elements) and `O(n * log(n))` worst-case. /// This sort is stable (i.e., does not reorder equal elements) and *O*(*n* \* log(*n*)) worst-case.
/// ///
/// When applicable, unstable sorting is preferred because it is generally faster than stable /// When applicable, unstable sorting is preferred because it is generally faster than stable
/// sorting and it doesn't allocate auxiliary memory. /// sorting and it doesn't allocate auxiliary memory.
@ -204,7 +204,7 @@ impl<T> [T] {
/// Sorts the slice with a comparator function. /// Sorts the slice with a comparator function.
/// ///
/// This sort is stable (i.e., does not reorder equal elements) and `O(n * log(n))` worst-case. /// This sort is stable (i.e., does not reorder equal elements) and *O*(*n* \* log(*n*)) worst-case.
/// ///
/// The comparator function must define a total ordering for the elements in the slice. If /// The comparator function must define a total ordering for the elements in the slice. If
/// the ordering is not total, the order of the elements is unspecified. An order is a /// the ordering is not total, the order of the elements is unspecified. An order is a
@ -258,8 +258,8 @@ impl<T> [T] {
/// Sorts the slice with a key extraction function. /// Sorts the slice with a key extraction function.
/// ///
/// This sort is stable (i.e., does not reorder equal elements) and `O(m * n * log(n))` /// This sort is stable (i.e., does not reorder equal elements) and *O*(*m* \* *n* \* log(*n*))
/// worst-case, where the key function is `O(m)`. /// worst-case, where the key function is *O*(*m*).
/// ///
/// For expensive key functions (e.g. functions that are not simple property accesses or /// For expensive key functions (e.g. functions that are not simple property accesses or
/// basic operations), [`sort_by_cached_key`](#method.sort_by_cached_key) is likely to be /// basic operations), [`sort_by_cached_key`](#method.sort_by_cached_key) is likely to be
@ -301,8 +301,8 @@ impl<T> [T] {
/// ///
/// During sorting, the key function is called only once per element. /// During sorting, the key function is called only once per element.
/// ///
/// This sort is stable (i.e., does not reorder equal elements) and `O(m * n + n * log(n))` /// This sort is stable (i.e., does not reorder equal elements) and *O*(*m* \* *n* + *n* \* log(*n*))
/// worst-case, where the key function is `O(m)`. /// worst-case, where the key function is *O*(*m*).
/// ///
/// For simple key functions (e.g., functions that are property accesses or /// For simple key functions (e.g., functions that are property accesses or
/// basic operations), [`sort_by_key`](#method.sort_by_key) is likely to be /// basic operations), [`sort_by_key`](#method.sort_by_key) is likely to be
@ -946,7 +946,7 @@ where
/// 1. for every `i` in `1..runs.len()`: `runs[i - 1].len > runs[i].len` /// 1. for every `i` in `1..runs.len()`: `runs[i - 1].len > runs[i].len`
/// 2. for every `i` in `2..runs.len()`: `runs[i - 2].len > runs[i - 1].len + runs[i].len` /// 2. for every `i` in `2..runs.len()`: `runs[i - 2].len > runs[i - 1].len + runs[i].len`
/// ///
/// The invariants ensure that the total running time is `O(n * log(n))` worst-case. /// The invariants ensure that the total running time is *O*(*n* \* log(*n*)) worst-case.
fn merge_sort<T, F>(v: &mut [T], mut is_less: F) fn merge_sort<T, F>(v: &mut [T], mut is_less: F)
where where
F: FnMut(&T, &T) -> bool, F: FnMut(&T, &T) -> bool,

View File

@ -1948,10 +1948,10 @@ impl<T> [T] {
/// ///
/// The comparator function must define a total ordering for the elements in the slice. If /// The comparator function must define a total ordering for the elements in the slice. If
/// the ordering is not total, the order of the elements is unspecified. An order is a /// the ordering is not total, the order of the elements is unspecified. An order is a
/// total order if it is (for all a, b and c): /// total order if it is (for all `a`, `b` and `c`):
/// ///
/// * total and antisymmetric: exactly one of a < b, a == b or a > b is true; and /// * total and antisymmetric: exactly one of `a < b`, `a == b` or `a > b` is true, and
/// * transitive, a < b and b < c implies a < c. The same must hold for both == and >. /// * transitive, `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`.
/// ///
/// For example, while [`f64`] doesn't implement [`Ord`] because `NaN != NaN`, we can use /// For example, while [`f64`] doesn't implement [`Ord`] because `NaN != NaN`, we can use
/// `partial_cmp` as our sort function when we know the slice doesn't contain a `NaN`. /// `partial_cmp` as our sort function when we know the slice doesn't contain a `NaN`.