C语言实现的排列组合问题的通用算法、解决方法(3)
copy(iv.begin(),iv.end(),ostream_iteratorint(cout," ")); cout endl; while(next_permutation(iv.begin(),iv.end())) { copy(iv.begin(),iv.end(),ostream_iteratorint(cout," ")); cout endl; } return 0; } 注意
copy(iv.begin(),iv.end(),ostream_iterator<int>(cout," "));
cout << endl;
while(next_permutation(iv.begin(),iv.end()))
{
copy(iv.begin(),iv.end(),ostream_iterator<int>(cout," "));
cout << endl;
}
return 0;
}
注意:上面程序中初始序列是按数值的从小到大的顺序排列的,如果初始序列无序的话,上面程序只能求出从当前序列开始的后续部分排列,也就是说next_permutation求出的排列是按排列从小到大的顺序进行的。
- 上一篇:算法之排列算法与组合算法详解
- 下一篇:全排列算法的原理和实现代码
精彩图集
精彩文章





