7.2.4 下一个排列:
问题描述:
直接求一个排列的下一个字典序排列;
技巧:
使用了C++的STL中提供的一个库函数 next_permutation()。
具体实例实现代码:
#include <stdio.h> #include <string.h> #include <cstdio> #include <algorithm> #include <iostream> using namespace std; #define N 100 /* 利用STL中的库函数求一个序列的下一个字典序列。 */ int main() { int n,p[10]; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d",&p[i]); sort(p,p+n); do { for(int i=0;i<n;i++) printf("%d",p[i]);printf("\n"); }while(next_permutation(p,p+n)); } return 0; } //此代码可以改用做其他用途:比如只求一个序列的下一个序列等。