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));