首先呢这是一种递归写法
#include<iostream>
using namespace std;
void purmuta(char* arr, size_t begin, size_t end)
{
if (begin == end)
{
for (int i = 0; i < end; ++i)
{
cout << arr[i]<<' ';
}
cout << '\n';
}
else
{
for (int i = begin; i < end; ++i)
{
swap(arr[i], arr[begin]);
purmuta(arr, begin + 1, end);
swap(arr[i], arr[begin]);
}
}
}
void purmuta(char* arr ,size_t len)
{
purmuta(arr, 0, len -1 );
}
栈空间一般不大,容易溢出;这个时候就需要利用数据结构的栈来实现;