# C++ Program to Implement Prev_Permutataion in STL

C++Server Side ProgrammingProgramming

Prev_permutation in STL is used to rearrange the elements in the range [first, last] into the previous lexicographically smaller permutation. A permutation is each one of the N! possible arrangements the elements can take. Here is a C++ program to implement Prev_permutation in STL.

## Algorithm

Begin
Define one integer array variable elements[].
Get the number of data e from the user.
Initialize the array elements[] with e number of data from the keyboard.
Sort all the array elements.
Reverse the array elements.
Do
show(elements) //to display the current content of the array
while (prev_permutation(elements, elements + e))
End.

## Example Code

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

## Output

Enter number of elements to be inserted: 4
Enter 1 element: 7
Enter 2 element: 6
Enter 3 element: 10
Enter 4 element: 2
The 4! possible permutations with 4 elements:
10 7 6 2
10 7 2 6
10 6 7 2
10 6 2 7
10 2 7 6
10 2 6 7
7 10 6 2
7 10 2 6
7 6 10 2
7 6 2 10
7 2 10 6
7 2 6 10
6 10 7 2
6 10 2 7
6 7 10 2
6 7 2 10
6 2 10 7
6 2 7 10
2 10 7 6
2 10 6 7
2 7 10 6
2 7 6 10
2 6 10 7
2 6 7 10
Published on 29-Mar-2019 12:05:33