6、7年前高中刚毕业时写过一个,原先写的早就找不到,不过算法还是记得很清楚,凭印象又写出来了。
源文件 http://blog.chaifeng.com/upload/full_array.c.utf-8.html
C 源文件 http://blog.chaifeng.com/upload/full_array.c
源代码用 Vim 编辑
语法高亮文件用 Vim 生成,大家可以参考一下
:TOhtml
执行效率测试:
OS : RedHat AS3 update 6
CPU : P3 1G
内存: 512M
GCC : gcc (GCC) 3.2.3 20030502
编译时没加优化 : gcc -o full_array full_array.c
全排列 10 个元素,耗时约 1.72 秒
time ./full_array “0192837465” > /dev/null
real 0m1.718s
user 0m1.720s
sys 0m0.000s
全排列 11 个元素,耗时约 18.9 秒
time ./full_array “0192837465a” > /dev/null
real 0m18.949s
user 0m18.920s
sys 0m0.020s
全排列 12 个元素,耗时约 3分55 秒
time ./full_array “0192837465ab” > /dev/null
real 3m55.335s
user 3m51.020s
sys 0m0.240s
基本上比用递归快一个数量级
如果有问题,欢迎一起讨论
Recent Comments