1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
pub mod am { /// Takes one source array, divides it into two arrays using `start`, `middle` and `end` /// delimiters. Overwrites the destination array. #[allow(dead_code)] pub fn merge( source: &mut [u8], destination: &mut [u8], start: usize, end: usize, middle: usize, ) { let mut i = start; let mut j = middle; for index in start..end { if (j >= end || source[i] <= source[j]) && i < middle { destination[index] = source[i]; i += 1; } else { destination[index] = source[j]; j += 1; } } } } #[cfg(test)] mod test;