pub fn mergesort<T>(s: &[T], i: usize, n: usize) -> Vec<usize> where
    T: PartialOrd + Copy
Expand description

Doubly recursive non-destructive merge sort. The data is not moved or mutated. Efficiency is comparable to quicksort but more stable Returns a vector of indices to s from i to i+n, such that the indexed values are in ascending sort order (a sort index). Only the index values are being moved.