生成排列算法

原创 2005年04月29日 19:58:00

生成排列算法

#include <stdio.h>

int n;
int visited[20];
int workarr[20];

void DFS(int l)
{
    int i;
    if (l == n)
    {
        for (i=0; i<l; i++)
            printf("%d ", workarr[i]+1);
        printf("/n");
        return;
     }
     for (i=0; i<n; i++)
         if (!visited[i])
         {
             visited[i] = 1;
             workarr[l] = i;
             DFS(l+1);
             visited[i] = 0;
           }
     
}

int main()
{
    int i;
    while (scanf("%d", &n) != EOF)
    {
        for (i=0; i<n; i++)
            visited[i] = 0;
        DFS(0);
     }

    return 0;

排列生成算法--字典序法

本文地址: 所谓字典序法就是按照字典排序的思想逐一产生所有排列。比如1,2,3,4四个数字进行全排列,先1234, 1243,1324,1342,1423,1432,…4321。 由1243生成132...
  • spch2008
  • spch2008
  • 2013年07月30日 21:24
  • 1271

全排列生成算法(二)

Steinhaus-Johnson-Trotter算法是一种基于最小变换的全排列生成算法,对于排列a[1...n],该算法通过将a[i],与a[i-1](或a[i+1])进行交换,生成下一个排列,直到...
  • joylnwang
  • joylnwang
  • 2011年12月15日 14:34
  • 4800

算法--生成1~n的排列

在暴力求解法中,我们常常要用上枚举一些简单内容以便方便获得解,若要输出整数n的前n个整数的全排列,则按字典序输出为: (1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(...
  • hhhzua
  • hhhzua
  • 2015年04月05日 19:54
  • 781

Johnson_Trotter 生成排列算法

const int N = 10; int f[N],d[N]; void init(int n) { for(int i=1; i
  • acm_BaiHuzi
  • acm_BaiHuzi
  • 2015年10月23日 16:55
  • 708

全排列的生成算法:字典序法

http://blog.sina.com.cn/s/blog_4cd4ffc401018x7r.html 全排列的生成算法 对于给定的字符集,用有效的方法将所有可能的全排列无重复...
  • kuailexiaoziwqx
  • kuailexiaoziwqx
  • 2016年08月14日 21:00
  • 1272

Steinhaus-Johnson-Trotter 生成全排列算法

Steinhaus-Johnson-Trotter算法是一种基于最小变换的全排列生成算法,对于排列a[1...n],该算法通过将a[i],与a[i-1](或a[i+1])进行交换,生成下一个排列,直到...
  • kalilili
  • kalilili
  • 2015年01月10日 00:43
  • 1302

生成全排列算法详解

递归+回溯+SWAP。字典序
  • Dafang_Xu
  • Dafang_Xu
  • 2015年10月17日 17:20
  • 1980

全排列的算法(八)——序数法

全排列的生成算法(八)——序数法   n个元素的全排列有n!个,如果将排列按顺序编号,并能够按照某种方法建立起每一个序号与一个排列之间的对应关系,那么就可以根据序号确定排列,反过来也可以根据排列确...
  • BabyNumber
  • BabyNumber
  • 2015年03月12日 09:19
  • 1730

排列算法,生成排列C++permutation

排列算法生成序列的字典序排序,通过算法重排序列来生成字典序的下一个或上一个序列,返回一个bool值来指出是否还有下一个或上一个排列。 // next_permutation example #inc...
  • blank__box
  • blank__box
  • 2017年11月29日 20:18
  • 66

生成全排列算法的实现(Johnson-Trotter)

生成全排列算法的实现(Johnson-Trotter)如下是用Johnson-Trotter算法实现的n个数据的全排列,这些数据可任意,因为对于任意n个数据,都可与1至n这n个整数一一对应,因此,在此...
  • qithon
  • qithon
  • 2016年01月11日 20:20
  • 1559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:生成排列算法
举报原因:
原因补充:

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