Anonymous user
Permutations: Difference between revisions
→Iterative
m (→{{header|C sharp|C#}}: Eliminated method call not included in source here) |
|||
Line 4,511:
=={{header|Rust}}==
===Iterative===
<lang rust>
idxs: Vec<usize>,▼
}
pub struct Permutations {
▲ QuickPerm { idxs: (0..elems.len()+1).collect(), elems: elems, idx: 1 }
}
impl
type Item = Vec<
fn next(&mut self) -> Option<Self::Item> {
if self.
loop {
if self.
self.
self.
self.idxs
self.
}
Some(self.idxs.clone())
}
}
fn main() {
let perms = permutations(3).collect::<Vec<_>>();
vec![0, 1, 2],
}▼
vec![1, 0, 2],
vec![2, 0, 1],
vec![0, 2, 1],
vec![1, 2, 0],
vec![2, 1, 0],
}</lang>
|