1、全排列:
(1)递归实现:
void myFullSort(vector<int> data, int k, int end)
{
int i;
if (k == end)
{
for (i = 0; i <= end; i++)
{
cout << data[i] << " ";
}
cout << endl;
}
else
{
for (i = k; i <= end; i++)
{
std::swap(data[k], data[i]);
myFullSort(data, k + 1, end);
std::swap(data[k], data[i]);
}
}
}
(2)非递归实现:
(3)运用STL中的函数next_permutation( ):
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
//STL —— next_