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;
    }

  • 相关阅读:
    vue mock数据设置
    vue 的全局拦截器
    vue-resource基础介绍
    快速排序
    Node 中的 stream (流)
    v8垃圾回收和js垃圾回收机制
    Node内存限制与垃圾回收
    ReactNative http网络通讯
    luogu1829 [国家集训队]Crash的数字表格
    luogu2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold
  • 原文地址:https://www.cnblogs.com/zhouyinhui/p/391777.html
Copyright © 2011-2022 走看看