It finds an indexed permutation for the list. So each permutation index will give a new permutation... at least until you run out of integers which is at about 12 items.public staticboolean permutation(List values, int index) {
return permutation(values, values.size(), index);
}
private staticboolean permutation(List values, int n, int index) {
if ((index == 0) || (n == 0)) return (index == 0);
Collections.swap(values, n, n-(index % n));
return permutation(values,n-1,index/n);
}
No comments:
Post a Comment