#include<vector>
#include<string.h>
using namespace std;
#pragma warning(disable:4996)
void GetValue1(vector<int> v, int idx)
{
if (idx >= v.size())
{
for (int i = 0; i<v.size(); i++)
{
printf("%d ", v[i]);
}
printf(" ");
return;
}
for (int i = idx; i < v.size(); i++)
{
int temp = v[idx];
v[idx] = v[i];
v[i] =temp;
GetValue1(v, idx + 1);
temp = v[idx];
v[idx] = v[i];
v[i] = temp;
}
}
int main()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
//GetValue(v, 0);
//printf(" ");
//memset(visit, 0, sizeof(visit));
//v.pop_back();
//v.pop_back();
GetValue1(v, 0);
return 0;
}
포인터가 아니라 값 복사라서 값이 커지면 느려질 가능성 농후함
댓글 0