C程序:打印1,2,3,..,n的全排列
2010-04-21 09:31
113 查看
/* 思路:递归算法 前0..cur-1位置上已经排好,当前cur位置取一个和前面都不一样的,然后递归处理后面的。 */ /* 输出1,2,3,..,n的排列数 */ #include <stdio.h> #include <assert.h> #include <malloc.h> void p(int n) { extern void _p(int n, int cur, int *a); int *a; a = (int *) malloc(n * sizeof(int)); assert(a != NULL); _p(n, 0, a); free(a); } void _p(int n, int cur, int *a) { int i,j; if (cur == n) { for (j=0; j<cur; j++) { printf("%d ", a[j]); } printf("/n"); return; } for (i=1; i<=n; i++) { for (j=0; j<cur; j++) { if (a[j] == i) { break; } } if (j>=cur) { a[cur] = i; _p(n, cur+1, a); } } } int main() { p(3); }
相关文章推荐
- 单链表的创建、打印完整程序
- python算法分析 笔记 ——打印全排列
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 操作无法完成(0x000006ba)。本地后台打印程序服务没有运行。请重新启动后台打印程序或重新启动计算机。
- 第8个python程序:还是打印
- 打印C程序的自身源代码(译)
- 使用libparted库写个程序来打印我们的设备信息
- 在非控制台程序中打印出printf
- 打印的一些程序
- 1.16 修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本。
- Linux 程序开发打印 Debug 信息的使用技巧
- java解惑--谜题16:行打印程序
- 在C/C++程序中打印当前函数调用栈
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,打印输入中各个字符出现频度的直方图
- 《Java解惑》系列——02字符谜题——谜题16:打印程序
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- B/S架构 Web打印程序(Argox)
- Python程序-打印九九乘法表