Wednesday, 24 June 2015

How to generate all permutations of an array in sorted order?

#include <string>

#include <vector>

#include <iterator>

#include <algorithm>

using namespace std;

void permute(string& list, int level, vector<string>& v){

if(level == list.size()){

v.push_back(list);

return;

}

for(int i=level;list[i];++i){

swap(list[level], list[i]);

permute(list, level + 1, v);

swap(list[level], list[i]);

}

}

int main(){

string anagrama;

vector<string> v;

cout << "input character set >";

cin >> anagrama;

permute(anagrama, 0, v);

sort(v.begin(), v.end());

copy(v.begin(), v.end(), ostream_iterator<string>(cout, "\n"));

}

No comments:

Post a Comment