Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author Bill Wood
- #![feature(slice_patterns)]
- fn main() {
- let x = vec!(1,2,3,2,5,8,4,9,);
- println!("{:?}", stalin_sort(x));
- let x = vec!('a','b','c','b','e','g','d','x');
- println!("{:?}", stalin_sort(x));
- let ideologies = vec!(
- "Fully Automated Luxury Space Communism",
- "Socialism",
- "Capitalism",
- "Communism",
- );
- println!("{:?}", stalin_sort(ideologies));
- }
- fn stalin_sort<T: PartialOrd + Copy>(mut v: Vec<T>) -> Vec<T> {
- match v[..] {
- [] => vec!(),
- [x] => vec!(x),
- [x, y, ..] => if x <= y {
- let mut x = vec!(x);
- x.append(&mut stalin_sort(v[1..].to_vec()));
- x
- } else {
- let mut x = vec!(x);
- x.append(&mut v[2..].to_vec());
- stalin_sort(x)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement