Ordered Float
use std::cmp::Ordering;
#[derive(PartialEq, PartialOrd, Clone, Copy)]
struct F(f64);
impl Eq for F {}
impl Ord for F {
fn cmp(&self, other: &F) -> Ordering {
self.partial_cmp(other).unwrap()
}
}
or
arr.sort_by_cmp(|a: f64, b: f64| a.partial_cmp(&b));