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

回到顶部