排列算法

package com.charles.algorithm;

import java.util.LinkedList;
import java.util.Queue;

public class Permutation {

    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<String>();
        queue.add("A");
        queue.add("B");
        queue.add("C");
        /*queue.add("D");
        queue.add("E");*/

        rankList(queue, "");
    }

    public static void rankList(Queue<String> chars, String param) {
        if (null == chars || 0 == chars.size()) {
            if(null != param && 0 < param.length()){
                System.out.println(param);
            }
            return;
        }
        String temp = param;
        for (String chara : chars) {
            param = temp + chara;
            Queue<String> charz = new LinkedList<String>(chars);
            charz.remove(chara);
            rankList(charz, param);
        }
    }

}
原文地址:https://www.cnblogs.com/itachy/p/7196474.html