关于求全排列

shexinwei 2012-04-10 10:01:00
现在正在做的一个算法,由于问题的特殊性。一个排列(1,2,3)与它的逆排列(3,2,1)的结果是一样的。因此在程序中不需要计算逆排列。

因为一个长度为n的序列的排列个数有n!个,且都是对称的。即:其中n!/2是另外n!/2的逆排列。

怎样设计一个求全排列的算法,只求其中一半排列,而不用计算它们对应的逆排列?
...全文
142 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
evencoming 2012-04-10
  • 打赏
  • 举报
回复
更正:调用count/2次就够了
evencoming 2012-04-10
  • 打赏
  • 举报
回复
计算出count=n!。
在升序排列序列。
然后调用 count/2+(count&1)次
next_permutation

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧