[英]How to sort a vector in Rust?
當前推薦的對向量中的值進行排序的方法是什么?
雖然上面提出的解決方案可以對整數向量進行排序,但我在對浮點數向量進行排序時遇到了問題。
最簡單的解決方案是使用quickersort crate ,它也可以對浮點數進行排序。 quickersort crate 還可以對任何類型的其他向量進行排序,還可以實現使用比較(sort_by)進行排序的方法。
以下是 Rust 代碼:
extern crate quickersort;
//let's create the vector with the values
let mut vals = Vec::new();
vals.push(31.2);
vals.push(31.2);
vals.push(10.0);
vals.push(100.4);
vals.push(4.1);
quickersort::sort_floats(&mut vals[..]); // sort the vector
要對向量v
排序,在大多數情況下v.sort()
將是您所需要的。
如果要應用自定義排序規則,可以通過v.sort_by()
。 這包括您想要對以下值進行排序的情況:
還要注意sort()
和sort_by()
使用穩定的排序算法(即,不重新排序相等的元素)。 如果您不需要穩定的排序,您可以使用sort_unstable()
/ sort_unstable_by()
,因為它們通常更快一點並且使用更少的內存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.