求n个字符的全排列

来源:互联网 发布:企业网站域名备案流程 编辑:程序博客网 时间:2024/05/17 10:40
/* * 对n个不同的字符进行全排列 * 算法思想: *     假设求 1234 的全排列 *     ① 把 1 固定,234 求全排,进行递归排列,直到为一个元素,打印所有元素,最后恢复最初的排序 *     ② 把 1 和 2 进行交换,把 2 固定,134 求全排列,直到为一个元素,打印所有元素,最后恢复最初的排序 *     ③ 同上所示,直到把 4 作为第一个为止。 */#include <iostream>using namespace std;void FullArray(char *str, int m, int n){int i, tmp;if (n == m){for (i = 0; i < n; i++)cout << str[i];cout << endl;}else{for (i = m; i < n; i++){tmp = str[i];str[i] = str[m];str[m] = tmp;FullArray(str, m + 1, n);tmp = str[i];str[i] = str[m];str[m] = tmp;}}}int main(void){char str[100] = "1234";FullArray(str, 0, strlen(str));system("pause");return 0;}

0 0
原创粉丝点击