全排列

Posted howbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全排列相关的知识,希望对你有一定的参考价值。

全排列

一 问题描述
给出一串字符的全排列

二 问题分析
采用回溯算法之排列树
三 代码实现

package backtracking_perm;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedList;

import javax.rmi.PortableRemoteObject;

public class bin
{
    public static void main(String[] args) throws IOException
    {
        char []x={‘A‘,‘B‘,‘C‘,‘D‘};
        perm myPerm=new perm(x);
    }
}
class perm
{
    char []ch;
    char []x;
    LinkedList<String> resultSet=new LinkedList<String>();
    public perm(char []x) throws IOException
    {
        this.x=x;
        this.ch=Arrays.copyOf(x, x.length);
        Perm(0);
        display();
    }
    public void Perm(int k)  //k表示处理位置
    {
        //制造排列树
        if(k==x.length-1)   //叶子结点  递归出口
        {
            resultSet.add(String.valueOf(x));  //为何无法直接添加x
//			System.out.println(String.valueOf(x));
            return;
        }
        for(int i=k; i<x.length; i++)
        {
            char t=x[i];
            x[i]=x[k];
            x[k]=t;
            Perm(k+1);
            t=x[i];
            x[i]=x[k];
            x[k]=t;
        }
    }
    public void display() throws IOException
    {
        BufferedWriter fout=new BufferedWriter(new FileWriter("out.txt"));
        fout.write("ch[i]:");
    	fout.newLine();
    	fout.write(String.valueOf(ch));
    	fout.newLine();
    	fout.flush();
    	fout.write("x[i]:");
    	fout.newLine();
    	for(int i=0; i<resultSet.size(); i++)
    	{
    		fout.write(String.valueOf(resultSet.get(i)));
    		fout.newLine();
    	}
    	fout.newLine();
    	fout.flush();
    }
    
}

四 运行结果
技术分享图片
五总结收获

  1. 熟练回溯法
  2. 使用Linkedlist类
  3. Sting.valueOf();
    六不足

1.手速太慢
2. 做题太少








以上是关于全排列的主要内容,如果未能解决你的问题,请参考以下文章

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

算法设计:全排列算法代码实现

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

蓝桥杯 三行代码解决 “全排列的价值”(2022省赛pythonA组)

java 蓝桥杯 dfs 全排列