DFS——求1—N所有数字的全排列

原创 2018年04月14日 22:08:49

代码:

//
//  main.cpp
//  DFS——全排列
//
//  Created by showlo on 2018/4/14.
//  Copyright © 2018年 showlo. All rights reserved.
//输出从1到N的全排列

#include <stdio.h>
#include <algorithm>
#include <math.h>
using namespace std;

int N,k,num;
int a[1000];

int dfs(int k){
    int i,j,flag;
    if (k==N+1) {
        num++;
        printf("Case %d:\n",num);
        for (i=1; i<=N; i++) {
            printf("%d ",a[i]);
        }
        printf("\n");
        return 0;
    }
    else{
        for (j=1; j<=N; j++) {
            flag=1;
            a[k]=j;
            for (i=1; i<k; i++) {
                if (a[i]==a[k]) {
                    flag=0;
                    break;
                }
            }
            if (flag) {
                dfs(k+1);
                a[k]=0;
            }
        }
    }
    return num;
}
int main() {
    while(scanf("%d",&N)){
        memset(a, 0, sizeof(a));
        num=0;
        dfs(1);
    }
    return 0;
}

全排列 深搜dfs

#include #include using namespace std; int a[100],vis[100],n; void dfs(int t){ if(n
  • update7
  • update7
  • 2017-02-26 15:09:15
  • 17687

数组中任意n个数的全排列(DFS)以及任意n个数的组合

今天做了poj1270这道题,采用了深度优先搜索,确实启发了我,无意中想了一个这么一个问题:求数组中任意n个数的全排列是不是也可以用深度优先去搜索(我理解这是一种深度搜索,不知道对不对)。 代码如下:...
  • u010064842
  • u010064842
  • 2013-05-02 22:51:26
  • 2642

深搜之全排列

/* 1、全排列问题 【问题描述】 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 【输入格式】 n(1≤n≤9) 【输出格式】...
  • wikioi_bai
  • wikioi_bai
  • 2014-11-26 21:19:20
  • 1500

求数组中任意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:22
  • 2033

生成1~n的全排列

代码: 这个递归太牛 #include using namespace std; void f(int n,int A[],int cur) { if(cur==n)//递归边界 ,A数组里...
  • qiqi123i
  • qiqi123i
  • 2017-03-19 16:50:36
  • 3994

全排列问题 解题报告

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

用dfs实现1到n的全排列

用dfs实现1到n的全排列,有更好的方法的朋友,欢迎讨论
  • chaoweilanmao
  • chaoweilanmao
  • 2014-07-07 10:43:27
  • 1181

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

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

全排列数的生成

这学期好忙,整个人都变懒了。。coursera上的课程作业只来得及更新到github上,希望自己以后看着注释还能记得怎么做。。。得空把上学期的一些作业放这里。 【问题描述】输入整数N( 1 ...
  • Jason_Ranger
  • Jason_Ranger
  • 2016-09-20 13:21:42
  • 2195

生成1~n的全排列

一、不可重集 #include using namespace std; const int maxn=1000+5; void print_n(int n,int* A,int cur) ...
  • DoriLeigh
  • DoriLeigh
  • 2015-03-20 21:44:16
  • 480
收藏助手
不良信息举报
您举报文章:DFS——求1—N所有数字的全排列
举报原因:
原因补充:

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