Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.38 KB | None | 0 0
  1. use std::collections::VecDeque;
  2.  
  3. fn permute<T>(used: &mut Vec<T>, unused: &mut VecDeque<T>, perms: &mut Vec<T>)
  4. {
  5. if unused.is_empty()
  6. {
  7. perms.push( used.iter().map(|n| *n).collect::<T>() );
  8. }
  9.  
  10. for _ in 0..unused.len()
  11. {
  12. used.push(unused.pop_front().unwrap());
  13. permute(used, unused, perms);
  14. unused.push_back(used.pop().unwrap());
  15. }
  16. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement