n个字符全排列

来源:互联网 发布:网络销售模式有哪些 编辑:程序博客网 时间:2024/06/06 21:01
/*全排列问题C++代码输入:全排列元素数量 n          n个需要排列的字符输出:该n个字符的全排列序列*/#include <iostream>using namespace std;void swap(int &a, int &b) {      //交换int temp = a;a = b;b = temp;}void perm(char list[], int low, int high) {      //递归函数if (low == high) {      //当执行完一趟递归排列便输出排列结果for (int i = 0; i <= low; i++)cout << list[i];cout << endl;}else {for (int i = low; i <= high; i++) {swap(list[i], list[low]);      //把第low个元素和第i个元素交换perm(list, low + 1, high);       //对子序列list[low+1]~list[high]执行递归排列操作swap(list[i], list[low]);      //将之前交换的两个元素换回来}}}int main(){int n;char list[100] ;cout << "Number of elements for Full Permutation: ";cin >> n;      //输入排列字符的数量cout << "\nInput: ";for (int i = 0; i < n; i++)cin >> list[i];      //输入n个需要排列的字符cout << "\nOutput:" << endl;perm(list, 0, n-1);cout << endl;return 0;}

原创粉丝点击