Метод sort_unstable
Метод sort_unstable сортирует элементы среза
в порядке возрастания. В отличие от метода
sort, данный метод не гарантирует сохранение
исходного порядка для элементов, которые считаются
равными при сравнении. Это делает сортировку быстрее
и экономичнее по памяти, но подходит только тогда,
когда стабильность не важна. Метод не принимает
параметров и не возвращает значения - он изменяет
срез на месте.
Синтаксис
slice.sort_unstable()
Пример
Давайте отсортируем срез чисел по возрастанию:
fn main()
{
let mut arr = [5, 2, 8, 1, 3];
arr.sort_unstable();
println!("{:?}", arr);
}
Результат выполнения кода:
[1, 2, 3, 5, 8]
Пример
Давайте отсортируем вектор строк по возрастанию:
fn main()
{
let mut vec = vec!["e", "b", "d", "a", "c"];
vec.sort_unstable();
println!("{:?}", vec);
}
Результат выполнения кода:
["a", "b", "c", "d", "e"]
Пример
Давайте отсортируем срез чисел по убыванию, используя замыкание сравнения:
fn main()
{
let mut arr = [3, 1, 4, 1, 5, 9, 2, 6];
arr.sort_unstable_by(|a, b| b.cmp(a));
println!("{:?}", arr);
}
Результат выполнения кода:
[9, 6, 5, 4, 3, 2, 1, 1]
Смотрите также
-
метод
sort,
который выполняет стабильную сортировку среза -
метод
sort_by,
который сортирует срез с помощью замыкания -
метод
is_sorted,
который проверяет, отсортирован ли срез -
метод
binary_search,
который ищет элемент в отсортированном срезе