zoukankan      html  css  js  c++  java
  • 全排列问题之递归求解

    全排列问题


    今天下午在TongJi OnLineJudge上做的一道全排列题:采用了让人头昏目眩的递归法
    全排列的解法不少,大家可以试一试。

    ----------------------------------
    Problem
    将一个字符组全排序

    Input
    一个长度小于10的字符串,该字符串由数字1~9组成。字符不会重复出现。

    Output
    按数字在输入串中出现的次序从小到大的顺序输出该字符组的全排序

    Sample Input
    132

    Sample Output
    1 3 2
    1 2 3
    3 1 2
    3 2 1
    2 1 3
    2 3 1

    ---------------------------------
    /*
    此解答已通过TongJi编译并被Accept
    Memory  Time
    36 k    8 ms
    zhouyinhui 2006-5-4 17:30
    */


    #include <stdio.h>
    #include <string.h>

    char string[9];
    int used[9]={0};
    char output[9];
    int  length;

    void F(int d)
    {
     int  i;
     for(i=0;i<=length;i++)
     { 
      if(!used[i])
      {
       used[i]=1;
       output[d]=string[i];
       if(d==length)
       {
        for(d=0;d<length;d++)
        printf("%c ",output[d]);
        printf("%c\n",output[length]);
       }
       else
        F(d+1);
       used[i]=0;
      }
     }

    }

    int main(void)
    {
     scanf("%s",&string);

     length=strlen(string)-1;

     F(0);

     return 0;
    }

  • 相关阅读:
    Nginx 413 Request Entity Too Large
    Docker 搭建一个多端同步网盘-Nextcloud
    FTP主动模式(PORT)与被动模式(PASV)
    Linux安装与使用FTP服务-vsftpd
    Mac FTP工具推荐-Transmit
    Nginx配置动静分离
    Nginx解决跨域问题(CORS)
    CentOS 7 之找回失落的ifconfig
    CentOS 7 之安装篇
    深入研究MiniMVC之后续篇
  • 原文地址:https://www.cnblogs.com/zhouyinhui/p/391777.html
Copyright © 2011-2022 走看看