Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. // Author Bill Wood
  2. #![feature(slice_patterns)]
  3. fn main() {
  4. let x = vec!(1,2,3,2,5,8,4,9,);
  5. println!("{:?}", stalin_sort(x));
  6. let x = vec!('a','b','c','b','e','g','d','x');
  7. println!("{:?}", stalin_sort(x));
  8. let ideologies = vec!(
  9. "Fully Automated Luxury Space Communism",
  10. "Socialism",
  11. "Capitalism",
  12. "Communism",
  13. );
  14. println!("{:?}", stalin_sort(ideologies));
  15. }
  16.  
  17. fn stalin_sort<T: PartialOrd + Copy>(mut v: Vec<T>) -> Vec<T> {
  18. match v[..] {
  19. [] => vec!(),
  20. [x] => vec!(x),
  21. [x, y, ..] => if x <= y {
  22. let mut x = vec!(x);
  23. x.append(&mut stalin_sort(v[1..].to_vec()));
  24. x
  25. } else {
  26. let mut x = vec!(x);
  27. x.append(&mut v[2..].to_vec());
  28. stalin_sort(x)
  29. }
  30. }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement