mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
Made slice sort documentation consistent between stable and unstable versions
This commit is contained in:
parent
1fe9b7f3fe
commit
000ec5e2f8
@ -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,
|
||||||
|
@ -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`.
|
||||||
|
Loading…
Reference in New Issue
Block a user