算法思想:N个数的全排列.

来源:百度知道 编辑:UC知道 时间:2024/06/30 09:46:05
输入N个字符(纯字母,无空格\数字等特殊字符,但允许字母重复)
然后输出者N个字符的全部可能的排列.
求这个程序的算法思想,核心部分有参考代码更好.

一个词 back-tracking
baidu一下你就知道什么意思了

程序是我刚才拍的 不知道你用什么语言 我用c语言写了

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

bool used[100];
char a[100],n,c[100];

int f(int dep){
    if(dep>=n){
        for(int i = 0;i<n;i++)
            printf("%c ",a[i]);
        printf("\n");
    }
    else{
        for(int i = 0;i<n;i++)
            if(!used[i]){
                a[dep] = c[i];
                used[i] = true;
         &n