pub fn merge_sort<T: PartialOrd + Clone + Default>(src: &mut [T]) {
    match src.len() {
        0 | 1 => {}
        2 => {
            if src[0] > src[1] {
                src.swap(0, 1)
            }
        }
        _ => merge_sort_impl(src),
    }
}
/// Merge sort
///
/// Basically, this merge sort divides an input array into small subarrays until their sizes will be so small
/// that finding solution for them will be incredibly easy (i.e. O(1).
/// After the division we should "combine" sorted subarrays using an appropriate procedure (i.e. `merge`).
Merge sort
Basically, this merge sort divides an input array into small subarrays until their sizes will be so small
that finding solution for them will be incredibly easy .
After the division we should "combine" sorted subarrays using an appropriate procedure .
Merge sort Basically this merge sort divides an input array into small subarrays until their sizes will be so small that finding solution for them will be incredibly easy . After the division we should " combine " sorted subarrays using an appropriate procedure .
pub fn merge_sort<T: PartialOrd + Clone + Default>(src: &mut [T]) {
    match src.len() {
        0 | 1 => {}
        2 => {
            if src[0] > src[1] {
                src.swap(0, 1)
            }
        }
        _ => merge_sort_impl(src),
    }
}
pub fn merge_sort < T : PartialOrd + Clone + Default > ( src : & mut [ T ] ) { match src . len ( ) { 0 | 1 => { } 2 => { if src [ 0 ] > src [ 1 ] { src . swap ( 0 , 1 ) } } _ => merge_sort_impl ( src ) , } }
Merge sort
Basically, this merge sort divides an input array into small subarrays until their sizes will be so small
that finding solution for them will be incredibly easy (i.e.
Merge sort Basically this merge sort divides an input array into small subarrays until their sizes will be so small that finding solution for them will be incredibly easy ( i . e .
src
&mut [T]
src
&mut [T]