C++ Program to Implement Prev_Permutation in STL

bookmark

#include <iostream>
#include <algorithm>
using namespace std;
void display(int a[], int n)
{
    for(int i = 0; i < n; i++)
    {
        cout<<a[i]<<"  ";
    }
    cout<<endl;
}
int main ()
{
    int num, i;
    cout<<"Enter number of elements to be inserted: ";
    cin>>num;
    int myints[num];
    for (i = 0; i < num; i++)
    {
        cout<<"Enter "<<i + 1<<" element: ";
        cin>>myints[i];
    }
    sort (myints, myints + num);
    reverse (myints, myints + num);
    cout << "The "<<num<<"! possible permutations with ";
    cout<<num<<" elements: "<<endl;
    do
    {
        display(myints, num);
    }
    while (prev_permutation(myints, myints + num));
    return 0;
}

 

Output:
$ g++ Prev_Permutation.cpp
$ a.out
Enter number of elements to be inserted: 3
Enter 1 element: 3
Enter 2 element: 2
Enter 3 element: 1
The 3! possible permutations with 3 elements: 
3  2  1  
3  1  2  
2  3  1  
2  1  3  
1  3  2  
1  2  3