C++ 排列组合

xiaoxing215 2011-01-19 09:50:58
因为是大数据量的运算,递归会占用大量的CPU, 所以这个项目不能使用递归算法,那位帅哥有做过不用递归的排列组合算法? 小弟弟在此先谢谢了!
...全文
247 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxing215 2011-01-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 infidel 的回复:]
引用 4 楼 xiaoxing215 的回复:

引用 3 楼 infidel 的回复:
你可以去看看组合数学上面有一章专门讲生成排列组合,记得有个算法好像叫格雷码,去看看吧,以前用这个解决过问题。
不过图简单的可以使用STL里面的 next_permutation和prev_permutation这一对函数来实现。

我到那里去找格雷码啊,帅哥!

专门生成组合的,这个是没有问题……
[/Quote]

我怎么给了你三个 8分啊? 呵呵
xiaoxing215 2011-01-21
  • 打赏
  • 举报
回复
谢谢各位兄弟们,弟弟这厢有礼了
xiaoxing215 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qq120848369 的回复:]
C/C++ code
STL里的next_permutation,简单的O(n)时间就可以得出比当前组合大的第一个组合,做法就是从尾向头扫描,然后遇到啥做个交换,<<STL源码剖析>>里有代码+图片演示,很简单.
[/Quote]

next_permutation 原理是采用递归原理吗?
qq120848369 2011-01-19
  • 打赏
  • 举报
回复
STL里的next_permutation,简单的O(n)时间就可以得出比当前组合大的第一个组合,做法就是从尾向头扫描,然后遇到啥做个交换,<<STL源码剖析>>里有代码+图片演示,很简单.
xiaoxing215 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pmars 的回复:]
用 next_permutation 可以么?
[/Quote]
可以, 只要能实现组合算法就行了,刚才我查找了排列组合的算法, 用了就是你这个next_permutation
你能有点提示吗?
xiaoxing215 2011-01-19
  • 打赏
  • 举报
回复
是组合算法, 各位兄弟们不好意思啦!
xiaoxing215 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 infidel 的回复:]
你可以去看看组合数学上面有一章专门讲生成排列组合,记得有个算法好像叫格雷码,去看看吧,以前用这个解决过问题。
不过图简单的可以使用STL里面的 next_permutation和prev_permutation这一对函数来实现。
[/Quote]
我到那里去找格雷码啊,帅哥!
InfidelX 2011-01-19
  • 打赏
  • 举报
回复
你可以去看看组合数学上面有一章专门讲生成排列组合,记得有个算法好像叫格雷码,去看看吧,以前用这个解决过问题。
不过图简单的可以使用STL里面的 next_permutation和prev_permutation这一对函数来实现。
wuyu637 2011-01-19
  • 打赏
  • 举报
回复
http://hi.baidu.com/nkhzj/blog/item/a3334f3463286f4b251f1430.html
pmars 2011-01-19
  • 打赏
  • 举报
回复
用 next_permutation 可以么?
InfidelX 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaoxing215 的回复:]

引用 3 楼 infidel 的回复:
你可以去看看组合数学上面有一章专门讲生成排列组合,记得有个算法好像叫格雷码,去看看吧,以前用这个解决过问题。
不过图简单的可以使用STL里面的 next_permutation和prev_permutation这一对函数来实现。

我到那里去找格雷码啊,帅哥!
[/Quote]
专门生成组合的,这个是没有问题的。
InfidelX 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaoxing215 的回复:]

引用 3 楼 infidel 的回复:
你可以去看看组合数学上面有一章专门讲生成排列组合,记得有个算法好像叫格雷码,去看看吧,以前用这个解决过问题。
不过图简单的可以使用STL里面的 next_permutation和prev_permutation这一对函数来实现。

我到那里去找格雷码啊,帅哥!
[/Quote]
http://www.amazon.cn/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6-%E5%B8%83%E9%B2%81%E8%BF%AA/dp/B00116ICBG
这本书,去图书馆找找,前面两张,我记得讲这个的。

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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