精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>算法集锦--------梦入玄机>>输出全排列算法讨论>>金鹰后补的全排列程序

主题:金鹰后补的全排列程序
发信人: goldeagle()
整理人: yangcs(2000-03-09 14:18:13), 站内信件
刚才看精华区中有关于全排列算法的讨论,我把我在
算24程序中的排列算法整理了一下,在的我机器上运
行下面的程序(11个成员进行排列),用了7.14秒,用
老山羊的程序解决同样的问题,只用5.55秒,看样子
我要好好地学习一下山羊兄的程序。

不过我觉得我的程序也有优点:简洁,易懂

//#include <stdio.h>

void permutation(char a[], int m, int n) {   // 排列算法
    int i;
    char t;
    if (m<n-1) {
permutation(a, m+1, n);
for (i=m+1;i<n;i++) {
t=a[m]; a[m]=a[i]; a[i]=t;
permutation(a, m+1, n);
t=a[m]; a[m]=a[i]; a[i]=t;
}
} else {
// printf("%s\n", a); //屏蔽掉输出
}
}

int main() {
char a[]="ABCDEFGHIJK";
permutation(a, 0, 11);
return 0;
}

--
行侠仗义吾本性,展翅翱翔天地间
请加入我创建的邮件列表“金鹰的程序员天地”:
(发一封空邮件到 [email protected]
再回复一封确认信就可以了)

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.182.36]

[关闭][返回]