全排列问题

原创 2015年07月10日 16:50:25

[题目描述]
输出自然数1~n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复数字。
[输入格式]
1<=n<=9
[输出格式]
由1~n组成的所有不重复的数字序列。每行一个序列
[输入样例]
3
[输出样例]
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
[思路分析]
本体只是在生成序列问题上简做修改,就可得出答案
[参考程序]

var a,b:array[1..5000]of longint;
    v:array[1..5000]of boolean;
    i,j,k,l,m,n,t,num,tail:longint;
procedure qs;
var i,j:longint;
    q:longint;
begin
  for i:=1 to n-1 do
   begin
     for j:=i+1 to n do
       begin
         if a[i]>a[j] then
          begin
            q:=a[i];
            a[i]:=a[j];
            a[j]:=q;
          end;
       end;
  end;
end;
procedure print;
var i,j,k:longint;
begin
  for i:=1 to n-1 do
    write(b[i],' ');
    writeln(b[n]);
end;
procedure dfs(k:longint);
var i,j,l:longint;
begin
  if  v[k] then
    begin
      v[k]:=false;
      num:=num+1;
      b[num]:=a[k];
      if num=n then
        print;
      if num<>n then
        for i:=1 to n do
          dfs(i);
      v[k]:=true;
      num:=num-1;
    end;
end;
begin
  //readln(t);
  {for l:=1 to t do
   begin
     n:=0;
     if l<>1 then
       readln;
     while not eoln do
       begin
         inc(n);
         read(a[n]);
       end;
     qs;
     //dec(n);}
     readln(n);
     num:=0;
     tail:=0;
     for i:=1 to n do
       a[i]:=i;
     fillchar(v,sizeof(v),true);
     for k:=1 to n do
       dfs(k);
    // writeln;
   //end;
end.

全排列

题目描述: 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1~n组成的所有不重复的...
  • SSL_Yyx
  • SSL_Yyx
  • 2016年12月03日 10:16
  • 218

全排列问题 解题报告

全排列问题 【问题描述】        输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 【输入格式】     n(1≤n≤9) 【输出格式】     ...
  • Clove_unique
  • Clove_unique
  • 2015年08月12日 21:04
  • 1145

笔记一:n个元素的所有排列递归算法

求n个元素的所有排列组合问题:给定n个元素,设序列为{a,b,c},求所有的排列组合。思路:每次递归,对组合的第一个元素排序。 代码:#include #include #include using...
  • u014033518
  • u014033518
  • 2016年04月24日 16:57
  • 2593

求数组中任意n个数的全排列

参考http://www.cppblog.com/menjitianya/archive/2015/10/09/211980.html http://blog.csdn.net/lsjseu/art...
  • u011499425
  • u011499425
  • 2016年09月29日 22:23
  • 1785

递归实现输出n个整数的全排列和所有子集

下面是用c++实现的输出n个整数的全排列# include #include using namespace std; void swap(int &a, int &b) { //交换a和...
  • liyongqi_
  • liyongqi_
  • 2017年04月22日 17:38
  • 1988

java算法分析与设计之全排列问题源代码

  • 2012年11月23日 17:36
  • 886B
  • 下载

Java_字符串全排列大全_(已解决重复问题)

  • 2014年03月25日 14:05
  • 8KB
  • 下载

全排列问题.ppt

  • 2014年03月27日 18:52
  • 486KB
  • 下载

C#实现解决全排列重复问题

  • 2017年09月12日 14:40
  • 25KB
  • 下载

算法分析与设计中的全排列问题

  • 2009年03月28日 10:52
  • 29KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:全排列问题
举报原因:
原因补充:

(最多只允许输入30个字)