例如我有这个数组:
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复制数组和重置数组大小操作,包括了JAVA复制数组和重置数组大小操作的使用技巧和注意事项,需要的朋友参考一下 翻看印象笔记发现自己整理过arraycopy()这样一个方法,码字放到这里: System.arraycopy()是一个静态方法,用来实现重置数组操作 数组复制方法调用和参数列表: System.arraycopy(src, srcPos, dest, destPos
问题内容: 我有一个这样的清单: 并在这样的对象上: 如何将“列表”分配给“ myMatrix”? 我不想遍历列表并将元素逐个分配给MyMatrix,但我想尽可能地直接分配它(使用oppurtune修改)。谢谢 问题答案: 您可以使用。 Java文档
数组在编程语言中是非常重要的数据结构。本小节我们来一起学习 Java 数组,通过本小节的学习,你将了解到数组的基本概念,如何声明数组以及数组的声明有哪些方式,如何初始化数组以及数组初始化有哪些方式,数组的常用操作有哪些,多维数组的声明、创建、初始化以及迭代等等。多维数组部分将以二维数组进行为例讲解,理解了二维数组,再去理解多维数组就相对容易了。 1. 什么是数组 数组是相同类型的数据按照顺序组成的