/**
*
* @tparam T 数组类型
* @param temp 数组名
* @param k 每次递归的开始
* @param m 数组的长度,从 0 开始, exp: char ch[] = {'a', 'b', 'c'}; // m = 2
*/
template<class T>
void permutations(T temp[], int k, int m) {
if (m == k) {
for (int i = 0; i <= m; ++i) {
cout << temp[i];
}
} else {
for (int i = k; i <= m; i++) {
swap(temp[k], temp[i]);
permutations(temp, k + 1, m);
cout << " ";
swap(temp[k], temp[i]);
}
}
}
int main() {
char ch[] = {'a', 'b', 'c', 'd'};
permutations(ch, 0, 3);
return 0;
}
c++ 实现的全排列
最新推荐文章于 2024-08-06 16:24:59 发布