Java数组置换
例如我有这个数组:
int a[] = new int[]{3,4,6,2,1};
我需要列出所有排列,以便如果一个像这样{3,2,1,4,6}
,则其他排列一定不能相同。我知道,如果数组的长度为n,那么就有n!可能的组合。该算法如何编写?
更新:谢谢,但是我需要一个伪代码算法,例如:
for(int i=0;i<a.length;i++){ // code here
}
只是算法。是的,API函数很好,但是对我没有太大帮助。
回答:
如果使用的是C ++,则可以std::next_permutation从头<algorithm>
文件使用:
int a[] = {3,4,6,2,1};int size = sizeof(a)/sizeof(a[0]);
std::sort(a, a+size);
do {
// print a's elements
} while(std::next_permutation(a, a+size));
以上是 Java数组置换 的全部内容, 来源链接: utcz.com/qa/418924.html