當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust slice.sort_unstable用法及代碼示例


本文簡要介紹rust語言中 slice.sort_unstable 的用法。

用法

pub fn sort_unstable(&mut self) where    T: Ord,

對切片進行排序,但可能不保留相等元素的順序。

這種排序是不穩定的(即可能對相等的元素重新排序)、就地(即不分配)和 O(n * log(n)) 最壞情況。

當前實施

當前算法基於 Orson Peters 的pattern-defeating quicksort,它將隨機快速排序的快速平均情況與堆排序的快速最壞情況結合起來,同時在具有某些模式的切片上實現線性時間。它使用一些隨機化來避免退化情況,但使用固定種子始終提供確定性行為。

它通常比穩定排序快,除了在一些特殊情況下,例如,當切片由幾個連接的排序序列組成時。

例子

let mut v = [-5, 4, 1, -3, 2];

v.sort_unstable();
assert!(v == [-5, -3, 1, 2, 4]);

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 slice.sort_unstable。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。