bisection
pub fn insort_left<T>(a: &mut Vec<T>, x: T) where T: Ord,
Insert x in a, keeping it sorted assuming a is sorted.
x
a
If a contains x, insert it just before the leftmost occurence of x.