首页 > 后端开发 > C++ > 生成排列和组合最快的 C 库是什么?

生成排列和组合最快的 C 库是什么?

DDD
发布: 2024-12-01 06:53:10
原创
248 人浏览过

What's the Fastest C   Library for Generating Permutations and Combinations?

C 语言的排列组合库函数

问题:

什么是最经常使用 C 库从 n 个集合中生成 k 个元素的所有组合和排列元素?

答案:

几个 C 库提供了计算排列和组合的函数。然而,根据 Charles Bailey 进行的分析,以下选项脱颖而出:

  • 解决方案 C: 该算法源自 N2639 论文,执行高效,访问每个组合在 85.3531 ns 内。
  • 解 D:参考解决方案中的 for_each_combination 函数性能优异,访问每个组合仅需 6.62765 ns,比解决方案 C 快 12 倍以上,比解决方案 B 快 9000 倍以上。

注意:

提供的基准测试是在 2.8 GHz Intel Core 上进行的i5 使用 clang -O3 并测量了生成一次 5 个 100 个元素的排列的性能(导致超过 7500 万个总组合)。

虽然解决方案 C 和 D 与解决方案 A 有相似之处,但它们避免了解决方案 A 中发现无限循环问题,结果准确。解决方案 D 是 Charles Bailey 已知的访问所有组合的最有效算法。

以上是生成排列和组合最快的 C 库是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板