zoukankan      html  css  js  c++  java
  • 使用dfs实现1至n全阵列

    使用dfs实现1至n全阵列。


    我的方法是从所述第一位置开始,使用dfs看上去就像每个头号位置,
    当某个位置。从小到大枚举1至n所有号码,打假说
    尚未使用之前在这个位置上的几个选择这个号码。然后搜索下
    职位数值。


    我的代码例如以下:

    #include<iostream>
    #include<cstring>
    using namespace std;
    int perm[10000],used[10000],num;
    void init()
    {
    	int i;
    	memset(used,0,sizeof(used));
    	scanf("%d",&num);
    	for(i=0;i<num;i++)
    		perm[i]=i+1;
    }
    void out()
    {
    	int i;
    	for(i=0;i<num;i++)
    	{
    		if(i)
    			printf(" ");
    		printf("%d",perm[i]);
    	}
    	printf("
    ");
    }
    void dfs(int pos)
    {
    	int i;
    	if(pos==num)
    	{
    		out();
    		return;
    	}
    	for(i=1;i<=num;i++)
    		if(!used[i])
    		{
    			perm[pos]=i;
    			used[i]=1;
    			dfs(pos+1);
    			used[i]=0;
    		}
    }
    void permutation()
    {
    	init();
    	dfs(0);
    }
    int main()
    {
    	permutation();
    }


     

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    -mysql-锁2
    -mysql-锁机制分为表级锁和行级锁
    JDBC

    JDBC接口介绍之Statement
    JDBC
    -Java-泛型
    JDBC的介绍和数据库的连接
    2014年9月1日 总结
    MediaRecorder test
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4732824.html
Copyright © 2011-2022 走看看