第7课:排列枚举

潘CSP基础班

2024-01-30 13:54:07
2024-03-01 8:04:07

信息与公告

枚举法: 循环枚举、排列枚举、子集枚举
(1)next_permutation:下一个排列(从小到大向后枚举排列)
(2)prev_permutation:上一个排列(从大到小向前枚举排列)
【参考代码】从小到大向后枚举数组a的全排列

sort(a+1,a+n+1);  //首先设置为最小排列
do  
{   
  for (int i = 1; i<=n; i++) {   //输出当前排列
    cout<<a[i];
  }
  cout<<endl;
} while (next_permutation(a + 1, a + n + 1));  //向后枚举后面的排列

字符串s的下一个排列:next_permutation(s.begin(), s.end());