Phương pháp hiện được đề xuất để sắp xếp các giá trị trong một vectơ là gì?
Phương pháp hiện được đề xuất để sắp xếp các giá trị trong một vectơ là gì?
Câu trả lời:
sort_by
phương thức cho phép một vị từ hoàn toàn tùy chỉnh.
self.sort()
== self.sort_by(|a, b| a.cmp(b))
.
.sort()
nếu kiểu T
thực hiện cmp::Ord
đặc điểm.
sort_unstable
nó chút nhanh hơn, nhưng có thể sắp xếp lại các yếu tố "bình đẳng"
Trong khi các giải pháp được đề xuất ở trên có thể sắp xếp các vectơ của số nguyên, tôi đã gặp vấn đề trong việc sắp xếp các vectơ của số thực.
Giải pháp đơn giản nhất là sử dụng thùng phân loại nhanh, cũng có thể phân loại nổi. Thùng sắp xếp nhanh cũng có thể sắp xếp các vectơ khác thuộc bất kỳ loại nào và cũng thực hiện các phương pháp để sắp xếp bằng cách sử dụng so sánh (sort_by).
Sau đây là mã 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.sort_by(|a, b| a.partial_cmp(b).unwrap_or(Ordering::Equal))
nên làm việc với phao. (Tùy thuộc vào những gì bạn muốn làm gì với Nans trong mảng, bạn có thể viết một hàm so sánh cẩn thận hơn.)