读书人

一个数组是12 22 22 2 4 6如何输出他的

发布时间: 2012-04-04 16:38:51 作者: rapoo

一个数组是12 22 22 2 4 6怎么输出他的所有排列
一个数组是12 22 22 2 4 6怎么输出他的所有排列

[解决办法]
排列组合算法么。高中就有啊。程序写出来就OK
[解决办法]
6个数组 全存这6个数,位置不变
for 循环 把6个数组叠起来 输出
结果 就是了
[解决办法]

探讨
6个数组 全存这6个数,位置不变
for 循环 把6个数组叠起来 输出
结果 就是了

[解决办法]
探讨

引用:
6个数组 全存这6个数,位置不变
for 循环 把6个数组叠起来 输出
结果 就是了

如果用这种需要注意的是,会有重复的。

[解决办法]
Java code
public class PermutCombi {    public static void output(int[] num, int[] arr) {        int i;        for (i = arr.length - 1; i >= 0; --i)            System.out.print((arr[num[i]]) + "  ");        System.out.println();    }    public static void permutCombi(int[] arr, int n) {        int[] num, mark;        int i, flag;        num = new int[n + 1];        mark = new int[n];        for (i = 0; i <= n; ++i)            num[i] = 0;        do {            for (i = 0; i < n; ++i)                mark[i] = 0;            flag = 0;            ++num[0];            for (i = 0; i < n; ++i) {                if (num[i] == n) {                    num[i] = 0;                    ++num[i + 1];                }                ++mark[num[i]];                // 各位数组单元有无重复                if (mark[num[i]] > 1) {                    flag = 1;                    break;                }            }            if (flag == 0)                output(num, arr);        } while (num[n] == 0);    }    public static void main(String[] args) {            int[] n = {12, 22, 2, 4, 6};        permutCombi(n, n.length);    }} 

读书人网 >J2SE开发

热点推荐